[英]Connect signals and slots of different classes in Qt
在Qt中,我的MainController
類在其構造函數中創建了一個ViewController
和一個NetworkController
。
創建后,我需要將QPushButton::clicked
信號連接到NetworkController
類中的onStartListening
插槽。
連接代碼:
connect(m_viewController->getStartWindow()->getStartListeningButton(),
&QPushButton::clicked, m_networkController, &NetworkController::onStartListening);
當我嘗試編譯代碼時,出現以下錯誤:
bla.exe中的0x66D641BA(Qt5Cored.dll)處未處理的異常:0xC0000005:訪問沖突讀取位置0xCDCDCDD1。
我究竟做錯了什么?
一種技術是在connect()中獲取對象,並將對象的信號連接到插槽。 在您的情況下,您將獲得viewController的啟動窗口按鈕。
另一種技術是在類中創建一個信號,並將該信號連接到父類中的插槽。 它需要更多代碼,但是您不必關心是否創建對象,因為如果對象為Null,則不會發射任何信號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.