您当前的位置: 首页 >  qt

txwtech

暂无认证

  • 3浏览

    0关注

    813博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

txwtech 发布时间:2022-09-17 15:30:44 ,浏览量:3

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 

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 

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();
}

关注
打赏
1665060526
查看更多评论
立即登录/注册

微信扫码登录

0.0694s