Qt使用笔记——自定义信号槽
程序员文章站
2022-06-09 11:25:03
...
前言
在使用Qt开发中,有时候在两个线程之间进行数据的传输,比如使用一个线程往另一个线程传输一个OpenCV的Mat数据或者一个Rect的坐标,那么最好是自已定义一个信号,然后在另一个线程定义一个槽来接收这个信号。
一.信号与槽
1.在Qt里面定义的信号是以函数形式声明的,返回类型是void,传入的参数为要发送出去的数据,前面有signals关键字标记。
signals:
void getStr(QString &str);//定义一个可以发送str的信号
2.信号槽继承于QObject类,头文件中必须有Q_OBJECT的类声明,否则会报错。
3.槽函数跟Qt正常的槽函数一样,可以用 public、private、protected 修饰,槽的参数不能有缺省值。
4.发射击信号(emit)是在程序要传出数据的位置使用。
emit get(str);//把str发射出去
5.信号和槽是一种松耦合机制,也可以说是一种分布式机制,信号广播出去,槽自然会订阅接收。
6.如果一个信号与多个槽相关连的话,那么,当这个信号被发射时,与之相关的槽被**的顺序是随机的。
二、代码
1.发射信号代码
void Dialog::on_emitBtn_clicked()
{
QString str = ui->EmitLineEdit->text();
emit getStr(str);
}
2.完整代码看上传的资源。
https://download.csdn.net/download/matt45m/12049993
上一篇: PHP 调用新浪滚动资讯
下一篇: 如何实现在文章中显示图片的功能?