在Qt中,我的MainController
班级在其构造函数中创建了ViewController
和NetworkController
。
创建后,我需要将QPushButton::clicked
信号连接到onStartListening
类中的NetworkController
广告位。
连接代码:
connect(m_viewController->getStartWindow()->getStartListeningButton(),
&QPushButton::clicked, m_networkController, &NetworkController::onStartListening);
当我尝试编译代码时,出现以下错误:
bla.exe中0x66D641BA(Qt5Cored.dll)的未处理异常: 0xC0000005:访问冲突读取位置0xCDCDCDD1。
我做错了什么?
答案 0 :(得分:2)
一种技术是将对象置于connect()内部,并将对象的信号连接到插槽。在您的情况下,您将获得viewController的启动窗口的按钮。
另一种技术是在类中创建一个信号,并将此信号连接到父类中的插槽。它需要更多的代码,但是你不需要关心是否创建了对象,因为如果object为Null则不会发出任何信号。