qt 子窗口与父窗口数据通信_Qt实例--主窗口和子窗口互发信号

383861ef946cdd9abbe6fd54a12c5d4d.png

准备工作:

需要首先添加一个Qt设计师界面类,这里使用默认类名Form。

fb1edcd6fa5d469cb2b7d635806a4415.png

实例一:主窗口向子窗口发送信号

窗口添加一个按钮QPushButton,在窗口添加一个标签QLabel。

窗口添加一个自定义信号:

signals:
void sendText(QString str);

59b615ee5d67ff47738fd40a8daf6a13.png

窗口构造函数里添加 子窗口初始化代码及信号槽连接代码。

    Form *form = new Form;
    form->show();            			//显示窗口
    connect(this, &Widget::sendText, form, &Form::recText);        //连接信号槽

窗口按钮被单击函数里添加发送信号的代码。

    //发送信号 将当前时间以文本的形式发送出去
    emit sendText(QDateTime::currentDateTime().toString());

dc9538c255dc14dd5acce68a5867cc60.png

窗口声明公开槽函数

    void recText(QString str);  //公开槽函数

4f19ee24e7a852e0131efcec3645140b.png

窗口槽函数里添加显示代码

ui->label->setText(str);				//显示发送过来的文本

b20ac652adf200c0eb2e25012630c108.png

单击主窗口按钮实现效果:

bc6cfe0f5a7c60148839c07e1d0e469c.png

实例二:子窗口向主窗口发送信号

窗口添加一个按钮QPushButton,在窗口添加一个标签QLabel。

窗口添加一个自定义信号

signals:
    void sendText(QString str);

1aa417cfc4845a2507e6bdf8eb69cc67.png

窗口按钮被单击函数里添加发送信号的代码

    emit sendText(QDateTime::currentDateTime().toString());

465b7f8d0ea7d812614ff0546f159c65.png

窗口声明公开槽函数

    void recText(QString str);

5bace5163f0fed62cdd6514f30767c25.png

窗口构造函数里添加 子窗口初始化代码及信号槽连接代码。

    Form *form = new Form;
    form->show();					      //显示子窗口
    //连接信号槽,!!!注意与示例1的参数有所不同
    connect(form, &Form::sendText, this, &Widget::recText);

24d6bcde8f3fd5a10ed2643e67f7d2b9.png

总结:无论是主窗口向子窗口发送信号,还是子窗口向主窗口发送信号。连接信号槽语句connect都是写在主窗口中,前两个参数为发送者及对应信号,后两个参数为接收者及对应槽函数。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值