• QT信号和槽的关联实现子窗口传递值给主窗口


    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
    

    1. #ifndef MAINWINDOW7_1_H
    2. #define MAINWINDOW7_1_H
    3. #include
    4. QT_BEGIN_NAMESPACE
    5. namespace Ui { class MainWindow7_1; }
    6. QT_END_NAMESPACE
    7. class MainWindow7_1 : public QWidget
    8. {
    9. Q_OBJECT
    10. public:
    11. MainWindow7_1(QWidget *parent = nullptr);
    12. ~MainWindow7_1();
    13. private:
    14. Ui::MainWindow7_1 *ui;
    15. private slots:
    16. void ShowValue(int value);
    17. };
    18. #endif // MAINWINDOW7_1_H
    1. #include "mainwindow7_1.h"
    2. #include "ui_mainwindow7_1.h"
    3. #include "mydialog.h"
    4. MainWindow7_1::MainWindow7_1(QWidget *parent)
    5. : QWidget(parent)
    6. , ui(new Ui::MainWindow7_1)
    7. {
    8. ui->setupUi(this);
    9. MyDialog *dlg=new MyDialog(this);
    10. //将子窗口子定义的信号与主窗口自定义的槽进行关联
    11. connect(dlg,SIGNAL(dlg_return_value(int)),this,SLOT(ShowValue(int)));
    12. //dlg->setModal(true);//设置模态对话框,默认是非模态
    13. dlg->show();
    14. }
    15. MainWindow7_1::~MainWindow7_1()
    16. {
    17. delete ui;
    18. }
    19. void MainWindow7_1::ShowValue(int value)
    20. {
    21. ui->label->setText(tr("接收到子窗口的值:%1").arg(value));
    22. }
    1. #ifndef MYDIALOG_H
    2. #define MYDIALOG_H
    3. #include
    4. namespace Ui {
    5. class MyDialog;
    6. }
    7. class MyDialog : public QDialog
    8. {
    9. Q_OBJECT //必须要在这里:类声明的开始处添加该宏
    10. public:
    11. explicit MyDialog(QWidget *parent = nullptr);
    12. ~MyDialog();
    13. private:
    14. Ui::MyDialog *ui;
    15. signals:
    16. void dlg_return_value(int);//自定义的信号
    17. private slots:
    18. void on_pushButton_confirm_clicked();
    19. };
    20. #endif // MYDIALOG_H
    1. #include "mydialog.h"
    2. #include "ui_mydialog.h"
    3. MyDialog::MyDialog(QWidget *parent) :
    4. QDialog(parent),
    5. ui(new Ui::MyDialog)
    6. {
    7. ui->setupUi(this);
    8. }
    9. MyDialog::~MyDialog()
    10. {
    11. delete ui;
    12. }
    13. void MyDialog::on_pushButton_confirm_clicked()
    14. {
    15. int value=ui->spinBox->value(); //获取旋转框输入的数值
    16. emit dlg_return_value(value);//发射信号
    17. //close();
    18. }

  • 相关阅读:
    python_04
    看这家造酒厂如何利用低代码开发框架筑牢数据根基,实现数字化转型
    数据结构之单链表
    局部最小值问题
    数据采集与数据预处理(python)概述(一)
    【机器学习】支持向量回归
    JavaFX介绍
    Spring(二)- BeanFactory与ApplicationContext
    Mybatis的学习(一)只Mybatis的介绍和使用
    MySQL学习笔记24
  • 原文地址:https://blog.csdn.net/txwtech/article/details/126906109