QT5中两个窗体之间传递信息(值)
一个窗体A调用另一个窗体B:
1)包含窗体B的头文件#include"B.h"
2)在窗体A中增加slots函数:
public slots: void infoRecv(QString);
实现infoRecv函数体:
void A::infoRecv(QString sInfo) { ui->label->setText(sInfo);//将获取的信息显示出来 }
3)在窗体B中增加signals函数:
signals:
void infoSend(QString);
4)在窗体A调用B的地方增加窗体交流绑定代码:
B idg = new B(); connect( idg ,SIGNAL(infoSend(QString) ,this ,SLOT(infoRecv(QString))); idg.init(); //idg窗体的初始化工作 idg.show();
5)在窗体B中增加发送信息的代码:
void B::on_buttonBox_clicked(QAbstractButton *button) { QString sInfo; if(ui->buttonBox->button(QDialogButtonBox::Cancel)==button) //需要增加头文件:#include<QPushBox> sInfo="cancel"; else if(ui->buttonBox->button ( QDialogButtonBox::OK ) == button ) sInfo="ok"; emit infoSend(sInfo); //infoSend函数不需要有函数体 }
至此,实现了在A窗体中调用B窗体,并将B窗体的信息传入到A窗体使用。
如果是父子窗体,在子窗体中调用父窗体的信息,可以在父窗体中增加一个public函数提供给子窗体获取信息使用。
作者:Lomper
出处:http://www.cnblogs.com/lomper
关于作者:小菜鸟一枚,欢迎大神指点!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.