【Qt學習】05 信號-槽 主窗口向子窗口傳遞參數

概述

學習內容:主對話框向子對話框發送消息,使用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、代碼下載

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章