赞
踩
学习内容:主对话框向子对话框发送消息,使用SIGNAL-SLOT实现。
IDE:Qt creator 4.11.0
编译器:MinGW 5.3.0 32bit for C++
1、sondialog.h文件
- #ifndef SONDIALOG_H
- #define SONDIALOG_H
-
- #include <QDialog>
-
- namespace Ui {
- class SonDialog;
- }
-
- class SonDialog : public QDialog
- {
- Q_OBJECT
-
- public:
- explicit SonDialog(QWidget *parent = nullptr);
- ~SonDialog();
-
- private:
- Ui::SonDialog *ui;
-
- private slots:
- void receiveData(QString str);
- };
-
- #endif // SONDIALOG_H

2、sondialog.cpp文件
- #include "sondialog.h"
- #include "ui_sondialog.h"
-
- SonDialog::SonDialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::SonDialog)
- {
- ui->setupUi(this);
- }
-
- SonDialog::~SonDialog()
- {
- delete ui;
- }
-
- void SonDialog::receiveData(QString str)
- {
- ui->textBrowser->setText(str);
- }

3、mainwindow.h文件
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include <QMainWindow>
- #include "sondialog.h"
-
- QT_BEGIN_NAMESPACE
- namespace Ui { class MainWindow; }
- QT_END_NAMESPACE
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- MainWindow(QWidget *parent = nullptr);
- ~MainWindow();
-
- private slots:
- void on_pushButton_clicked();
-
- private:
- Ui::MainWindow *ui;
- SonDialog *m_pSonDialog;
-
- signals:
- void sendData(QString str);
- };
- #endif // MAINWINDOW_H

4、mainwindow.cpp文件
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
-
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
-
- MainWindow::m_pSonDialog = new SonDialog();
- m_pSonDialog->show();
-
- connect(this, SIGNAL(sendData(QString)), m_pSonDialog, SLOT(receiveData(QString)));
-
- }
-
- MainWindow::~MainWindow()
- {
- delete ui;
- }
-
-
- void MainWindow::on_pushButton_clicked()
- {
- emit sendData(ui->lineEdit->text());
- }

5、main.cpp文件
- #include "mainwindow.h"
-
- #include <QApplication>
-
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- return a.exec();
- }
6、效果。
7、代码下载
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。