【Qt学习】04 信号-槽 子窗口向主窗口传递参数

    技术2026-01-30  6

    概述

    学习内容:子对话框向主对话框发送消息,使用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 slots: void on_pushButton_clicked(); private: Ui::SonDialog *ui; signals: void sendData(QString); }; #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::on_pushButton_clicked() { emit sendData(ui->lineEdit->text()); }

    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: Ui::MainWindow *ui; SonDialog *m_pSonDialog; private slots: void receiveData(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(m_pSonDialog, SIGNAL(sendData(QString)), this, SLOT(receiveData(QString))); } MainWindow::~MainWindow() { delete ui; } void MainWindow::receiveData(QString str) { ui->textBrowser->setText(str); }

     

    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、代码下载

    地址:https://download.csdn.net/download/sunriver2000/12577039

    Processed: 0.014, SQL: 9