原创 深入理解QT的SIGNAL\SLOT機制(五):信號的發射過程

我們來看信號的發起過程,先來看一個宏定義:# define emit,這個宏定義將emit定義爲空,也就是說你在emit mysignal()的時候,這行代碼其實就是mysignal(),所以信號就是函數,只是換了個概念而已!

原创 深入理解QT的SIGNAL\SLOT機制(四):Connection結構

書接上文,本章講述connection結構,這部分是信號和槽能發揮作用的核心部分,先來看兩個結構體: struct Connection { QObject *sender;//信號發起者 QOb

原创 深入理解QT的SIGNAL\SLOT機制(一):SIGNAL\SLOT如何使用

首先聲明不同版本的QT針對信號和槽的實現略有不同,接口大多一樣。我用的是QT5.9.1。 QT的SIGNAL/SLOT有點像觀察者模式,說是階段一直做SDN,在controller的代碼中就是使用觀察者模式進行消息分發,看了Qt的SIGN

原创 深入理解QT的SIGNAL\SLOT機制(二):QMetaObject相關知識

在真正開始理解SIGNAL和SLOT之前需要先了解一下QMetaObject的相關知識,本章我們來了解QMetaObject。 QT會爲繼承自QObject並且有QOBJECT宏的所有對象生成moc_**.cpp文件,也就是說,只要你想使

原创 深入理解QT的SIGNAL\SLOT機制(三):QObject::connect函數

本章我們來看connect函數是如何綁定信號和槽的 我們在MyWidget.cpp代碼中的connect左邊打斷點進行DEBUG:按F11,進入connect函數。 下面是QObject::connect函數的代碼: 2663~