赞
踩
QT使用SIGNAL和SLOT宏实现信号和槽的关联
QT信号和槽的关联实现子窗口界面传递值给主窗口界面
MainWindow7_1::MainWindow7_1(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MainWindow7_1)
{
ui->setupUi(this);
MyDialog *dlg=new MyDialog(this);
//将子窗口子定义的信号与主窗口自定义的槽进行关联
//connect(dlg,SIGNAL(dlg_return_value(int)),this,SLOT(ShowValue(int)));
//dlg->setModal(true);//设置模态对话框,默认是非模态
//基于函数指针的重载形式
connect(dlg,&MyDialog::dlg_return_value,this,&MainWindow7_1::ShowValue);
//Lambda表达式传值的方式获取外部变量
connect(dlg,&MyDialog::dlg_return_value,[=](int value){
ui->label_2->setText(tr("Lambda表达式传值的方式获取外部变量value:%1").arg(value));
});
dlg->show();
}
QT信号和槽的关联实现子窗口传递值给主窗口.rar-QT文档类资源-CSDN下载QT信号和槽的关联实现子窗口传递值给主窗口.rarhttps://txwtech.blog.csd更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/txwtech/86542193
- #ifndef MAINWINDOW7_1_H
- #define MAINWINDOW7_1_H
-
- #include <QWidget>
-
- QT_BEGIN_NAMESPACE
- namespace Ui { class MainWindow7_1; }
- QT_END_NAMESPACE
-
- class MainWindow7_1 : public QWidget
- {
- Q_OBJECT
-
- public:
- MainWindow7_1(QWidget *parent = nullptr);
- ~MainWindow7_1();
-
- private:
- Ui::MainWindow7_1 *ui;
- private slots:
- void ShowValue(int value);
- };
- #endif // MAINWINDOW7_1_H
- #include "mainwindow7_1.h"
- #include "ui_mainwindow7_1.h"
- #include "mydialog.h"
-
- MainWindow7_1::MainWindow7_1(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::MainWindow7_1)
- {
- ui->setupUi(this);
- MyDialog *dlg=new MyDialog(this);
- //将子窗口子定义的信号与主窗口自定义的槽进行关联
- connect(dlg,SIGNAL(dlg_return_value(int)),this,SLOT(ShowValue(int)));
- //dlg->setModal(true);//设置模态对话框,默认是非模态
- dlg->show();
- }
-
- MainWindow7_1::~MainWindow7_1()
- {
- delete ui;
- }
-
- void MainWindow7_1::ShowValue(int value)
- {
- ui->label->setText(tr("接收到子窗口的值:%1").arg(value));
- }
-
- #ifndef MYDIALOG_H
- #define MYDIALOG_H
-
- #include <QDialog>
-
- namespace Ui {
- class MyDialog;
- }
-
- class MyDialog : public QDialog
- {
- Q_OBJECT //必须要在这里:类声明的开始处添加该宏
-
- public:
- explicit MyDialog(QWidget *parent = nullptr);
- ~MyDialog();
-
- private:
- Ui::MyDialog *ui;
- signals:
- void dlg_return_value(int);//自定义的信号
- private slots:
- void on_pushButton_confirm_clicked();
- };
-
- #endif // MYDIALOG_H
- #include "mydialog.h"
- #include "ui_mydialog.h"
-
- MyDialog::MyDialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::MyDialog)
- {
- ui->setupUi(this);
- }
-
- MyDialog::~MyDialog()
- {
- delete ui;
- }
-
- void MyDialog::on_pushButton_confirm_clicked()
- {
- int value=ui->spinBox->value(); //获取旋转框输入的数值
- emit dlg_return_value(value);//发射信号
- //close();
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。