当前位置:   article > 正文

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

qt slot传值

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 <QWidget>
  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 <QDialog>
  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. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/730724
推荐阅读
相关标签
  

闽ICP备14008679号