簡體   English   中英

連接Qt中不同類別的信號和插槽

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM