准备工作:
需要首先添加一个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都是写在主窗口中,前两个参数为发送者及对应信号,后两个参数为接收者及对应槽函数。
Qt实例——主窗口和子窗口互发信号
Qt实例——点击按钮显示文本
Qt编写的知名的开源软件列表
举报/反馈

梦话你我他

2527获赞 2022粉丝
说说你我他和大家身边的事
关注
0
0
收藏
分享