成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

表現方式 Qt中Signal Slot 4 種連接

移動開發
本文介紹的是表現方式 Qt中Signal Slot 4 種連接,很詳細對為友們講解,先來看內容。

表現方式 Qt Signal Slot 4 種連接是本文介紹的內容,先來看內容。signal/slot在底層會使用三種方式傳遞消息。參見QObject::connect()方法:

bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoCompatConnection )

最后一個參數是就是傳遞消息的方式了,有四個取值:

Qt::DirectConnection

When emitted, the signal is immediately delivered to the slot.

假設當前有4個slot連接到QPushButton::clicked(bool),當按鈕被按下時,QT就把這4個slot按連接的時間順序調用一遍。顯然這種方式不能跨線程(傳遞消息)。

Qt::QueuedConnection

When emitted, the signal is queued until the event loop is able to deliver it to the slot.

假設當前有4個slot連接到QPushButton::clicked(bool),當按鈕被按下時,QT就把這個signal包裝成一個 QEvent,放到消息隊列里。QApplication::exec()或者線程的QThread::exec()會從消息隊列里取消息,然后調用 signal關聯的幾個slot。這種方式既可以在線程內傳遞消息,也可以跨線程傳遞消息。

Qt::BlockingQueuedConnection

Same as QueuedConnection, except that the current thread blocks until the slot has been delivered. This connection type should only be used for receivers in a different thread. Note that misuse of this type can lead to dead locks in your application.

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

Qt::AutoConnection

If the signal is emitted from the thread in which the receiving object lives, the slot is invoked directly, as with Qt::DirectConnection; otherwise the signal is queued, as with Qt::QueuedConnection.

這種連接類型根據signalslot是否在同一個線程里自動選擇Qt::DirectConnection或Qt::QueuedConnection

這樣看來,第一種類型的效率肯定比第二種高,畢竟第二種方式需要將消息存儲到隊列,而且可能會涉及到大對象的復制(考慮sig_produced(BigObject bo),bo需要復制到隊列里)。

與wxWidget、MFC的效率比較

wxWidget沒用過,了解過MFC。我覺得MFC的消息隊列是比較簡單的,一般只是傳遞long數值、HANDLE、指針,效率上應該會比QT的隊列方式高,然而QT的靈活性是MFC沒辦法比擬的,我還是比較喜歡QT這樣的。

小結:表現方式 Qt Signal Slot 4 種連接的內容介紹完了,希望本文對你有所幫助。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-07-01 17:50:13

Python 多線程

2011-08-03 16:26:14

iPhone UIView 動畫

2011-08-03 16:35:10

iPhone UIView 動畫

2011-06-17 09:58:26

Qt Chapter QObject

2017-04-19 08:32:50

大數據數據可視化編程工具

2011-06-23 14:40:13

Qt 信號

2011-06-23 13:38:27

QT 元對象 信號

2014-12-31 14:09:23

xml解析

2009-08-22 17:08:02

家庭智能布線綜合布線連接

2017-08-31 15:20:03

PythonPython3HTTP

2011-04-13 14:38:17

2018-04-28 15:51:33

Mybatis方式傳遞

2019-11-27 18:43:36

程序員編程語言軟件

2019-12-04 12:52:07

物聯網數據分析IOT

2018-11-12 10:41:56

物聯網IoT玩具

2020-11-10 10:59:19

大數據大數據發展風險管理

2018-02-05 08:36:22

NetAppVeeam AWS存儲

2021-01-08 10:52:22

物聯網萬物互聯IoT,Interne

2011-05-20 09:55:26

Oracle連接

2019-12-16 10:13:16

Python字符串數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 无码一区二区三区视频 | 国产成人99久久亚洲综合精品 | 欧美亚洲国产日韩 | 亚洲传媒在线 | 一区二区三区在线免费观看 | 色综合视频 | 免费观看a级毛片在线播放 黄网站免费入口 | 日韩国产三区 | 国产精品揄拍一区二区 | 中文字幕在线一区二区三区 | 九九九视频 | 成年人免费看的视频 | 综合国产 | 五月天国产视频 | 国产午夜精品福利 | 91高清视频在线 | 久久国产视频播放 | 亚洲av毛片 | 理论片午午伦夜理片影院 | 午夜视频在线免费观看 | 国产一区二区三区久久久久久久久 | 久久久青草婷婷精品综合日韩 | 成人免费在线 | 国产一区久久久 | 有码一区 | 国产一区视频在线 | 国产aⅴ | 九九精品视频在线 | 国产成人aⅴ | 日本男人天堂 | 91国自产 | 欧美日韩高清免费 | 正在播放一区二区 | 久久久久国 | 国产成人精品一区二区三区四区 | 午夜影院操 | 精品国产一区二区 | 午夜影晥 | 国产视频久久 | 国产做a爱片久久毛片 | 日韩精品专区在线影院重磅 |