900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > qt 子窗口与父窗口数据通信_Qt实例--主窗口和子窗口互发信号

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

时间:2020-04-07 15:33:25

相关推荐

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

准备工作:

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

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

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

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

signals:

void sendText(QString str);

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

Form *form = new Form;

form->show(); //显示窗口

connect(this, &Widget::sendText, form, &Form::recText); //连接信号槽

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

//发送信号 将当前时间以文本的形式发送出去

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

窗口声明公开槽函数

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

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

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

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

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

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

窗口添加一个自定义信号

signals:

void sendText(QString str);

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

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

窗口声明公开槽函数

void recText(QString str);

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

Form *form = new Form;

form->show();//显示子窗口

//连接信号槽,!!!注意与示例1的参数有所不同

connect(form, &Form::sendText, this, &Widget::recText);

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。