日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt::ConnectionType(信号与槽的传递方式)

發布時間:2025/6/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt::ConnectionType(信号与槽的传递方式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Qt::AutoConnection

自動連接:(默認值)如果信號在接收者所依附的線程內發射,則等同于直接連接。如果發射信號的線程和接受者所依附的線程不同,則等同于隊列連接。

Qt::DirectConnection

直接連接:當信號發射時,槽函數將直接被調用。無論槽函數所屬對象在哪個線程,槽函數都在發射信號的線程內執行。

Qt::QueuedConnection

隊列連接:當控制權回到接受者所依附線程的事件循環時,槽函數被調用。槽函數在接收者所依附線程執行。也就是說:這種方式既可以在線程內傳遞消息,也可以跨線程傳遞消息

Qt::BlockingQueuedConnection

與Qt::QueuedConnection類似,但是會阻塞等到關聯的slot都被執行。這里出現了阻塞這個詞,說明它是專門用來多線程間傳遞消息的。

?

MyObject.h #ifndef MYOBJECT_H #define MYOBJECT_H#include class MyObject : public QObject {Q_OBJECTpublic:explicit MyObject(QObject *parent = 0);public slots:void start(); };#endif // MYOBJECT_H MyObject.cpp #include "MyObject.h" #include #include MyObject::MyObject(QObject *parent): QObject(parent) {}void MyObject::start() {qDebug() << QString("my object thread id:") << QThread::currentThreadId(); } main.cpp #include "MyObject.h" #include #include #include int main(int argc, char *argv[]) {QApplication a(argc, argv);qDebug() << QString("main thread id:") << QThread::currentThreadId();MyObject object;QThread thread;object.moveToThread(&thread);QObject::connect(&thread, SIGNAL(started()), &object, SLOT(start()));thread.start();return a.exec(); }? 查看運行結果:

??"main thread id:" 0xf08

??"my object thread id:" 0x216c

????顯然主線程與槽函數的線程是不同的(你可以多次嘗試,屢試不爽。。。),因為moveToThread后MyObject所在的線程為QThread,繼上面介紹的thread.start()執行后首先會發射started()信號,也就是說started()信號發射是在次線程中進行的,所以無論采取Qt::AutoConnection、Qt::DirectConnection、Qt::QueuedConnection哪種連接方式,主線程與槽函數的線程都是不同的。

?

1、修改代碼如下:

MyObject object;QThread thread;//object.moveToThread(&thread);QObject::connect(&thread, SIGNAL(started()), &object, SLOT(start()), Qt::DirectConnection);thread.start(); 查看運行結果:

??"main thread id:" 0x2688

??"my object thread id:" 0x2110?

????顯然主線程與槽函數的線程是不同的,MyObject所依附的線程為主線程(因為注釋掉了moveToThread),繼上面介紹的Qt::DirectConnection(無論槽函數所屬對象在哪個線程,槽函數都在發射信號的線程內執行)。也就是說started()信號發射是在次線程中進行的,槽函數也是在次線程中進行的,所以主線程與槽函數的線程是不同的。

?

2、修改代碼如下:

MyObject object;QThread thread;//object.moveToThread(&thread);QObject::connect(&thread, SIGNAL(started()), &object, SLOT(start()), Qt::QueuedConnection);thread.start();

查看運行結果:

??"main thread id:" 0x24ec

??"my object thread id:" 0x24ec?

????顯然主線程與槽函數的線程是相同的,繼上面介紹的Qt::QueuedConnection(槽函數在接收者所依附線程執行)。也就是說started()信號發射是在次線程中進行的,但MyObject所依附的線程為主線程(因為注釋掉了moveToThread),所以主線程與槽函數的線程必然是相同的。

?

3、修改代碼如下:

MyObject object;QThread thread;//object.moveToThread(&thread);QObject::connect(&thread, SIGNAL(started()), &object, SLOT(start()), Qt::AutoConnection);thread.start(); 查看運行結果:

??"main thread id:" 0x2700

??"my object thread id:" 0x2700?

????顯然主線程與槽函數的線程是相同的,MyObject所依附的線程為主線程(因為注釋掉了moveToThread),繼上面介紹的Qt::AutoConnection(如果信號在接收者所依附的線程內發射,則等同于直接連接。如果發射信號的線程和接受者所依附的線程不同,則等同于隊列連接。)。因為started()信號和MyObject依附的線程不同,所以結果和Qt::QueuedConnection對應的相同,所以主線程與槽函數的線程是相同的。

轉載于:https://www.cnblogs.com/senior-engineer/p/6186226.html

總結

以上是生活随笔為你收集整理的Qt::ConnectionType(信号与槽的传递方式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品入口久久 | 三级网站 | 亚洲老老头同性老头交j | 国产奶头好大揉着好爽视频 | 国产人久久人人人人爽 | 日日操夜夜骑 | 亚洲国产99 | 欧美日韩国产精品一区二区 | 浓精h攵女乱爱av | 男生和女生差差视频 | 成人手机在线视频 | 91黄在线看 | 久久久久亚洲av成人片 | 一级网站在线观看 | 亚洲香蕉av | 亚洲福利视频一区二区三区 | 国产成人精品无码免费看在线 | 色综合五月婷婷 | 亚洲第一精品在线 | www夜片内射视频日韩精品成人 | 在线播放av片 | 亚洲淫欲| 东京热加勒比无码少妇 | 美女扒开内裤让男人捅 | 一区二区免费在线播放 | 一区二区免费在线播放 | 在线观看国产 | 九七影院在线观看免费观看电视 | 国产人成视频在线观看 | 97一区二区三区 | 91精品视频国产 | 可以免费看的黄色网址 | 91在线观看免费高清完整版在线观看 | 亚洲精品理论片 | 免费看美女隐私网站 | 日韩夜夜高潮夜夜爽无码 | 亚洲人精品 | 亚洲视频欧洲视频 | 少妇野外性xx老女人野外性xx | 无码国产精品一区二区色情男同 | 懂色av一区二区三区四区五区 | 亚洲熟妇一区二区 | 欧美黄色a级 | 免费无码又爽又黄又刺激网站 | 国产精品久久久久久免费 | 99精品免费 | 久久久精品小视频 | 精品久久人妻av中文字幕 | 老牛影视av一区二区在线观看 | 国产精品第三页 | 香蕉视频性 | 东方av在线免费观看 | 久久亚洲精精品中文字幕早川悠里 | 一级特黄肉体裸片 | 国产熟妇搡bbbb搡bbbb搡 | 91精品91久久久中77777 | 欧美体内she精高潮 日韩一区免费 | 超碰人人人人 | 久久久久国产精品夜夜夜夜夜 | 欧美成人dvd在线视频 | 美女在线国产 | 国产成人精品综合久久久久99 | 人人草人人澡 | 息与子五十路翔田千里 | 一级黄色在线观看 | 久热欧美 | 亚洲自拍第三页 | 欧美色图亚洲激情 | 亚洲啪av永久无码精品放毛片 | 夜夜爽夜夜叫夜夜高潮漏水 | 日本偷偷操 | 亚洲精品日日夜夜 | 亚洲精品在线免费看 | 亚洲精品成人区在线观看 | 午夜网站在线观看 | 怡红院一区二区 | 四虎永久免费观看 | 成人免费观看a | 男人的天堂手机在线 | 免费一级黄色 | 中文字幕一区二区三区在线观看 | 少妇看片 | 97干干 | 黄色日批视频 | 光棍福利视频 | 美女福利片 | 天天拍夜夜拍 | 久操新在线| 好吊妞操 | 很黄很污的视频网站 | 天天干天天狠 | 成人午夜电影网站 | 夜夜爽夜夜叫夜夜高潮漏水 | 色狠狠久久av大岛优香 | 尤物精品 | 亚洲天堂2021av | av免费观看网 | 久久综合久久久久 | 欧美日韩精品网站 |