Qt5:无法将信号连接到插槽
Qt5: could not connect signal to slot
我正在尝试升级我的旧应用程序..(再添加一项功能)。所以,我在 'File' 菜单中又添加了一项。
<addaction name="actionDownload_Firmware_Image"/>
<action name="actionDownload_Firmware_Image">
<property name="text">
<string>&Download Firmware Image</string>
</property>
<property name="menuRole">
<enum>QAction::ApplicationSpecificRole</enum>
</property>
</action>
在这里定义了我的插槽:
void MainWindow::on_actionDownload_Firmware_Image_triggered()
MainWindow.h>
private slots:
void on_actionDownload_Firmware_Image_triggered();
所以,我清理我的项目,run qmake
,构建项目...播放它,我得到与以前完全相同的 GUI,没有新的菜单项。
当 App 为 运行 时,我收到以下消息>
QMetaObject::connectSlotsByName: No matching signal for on_actionDownload_Firmware_Image_triggered()
我在 Whosebug 的其他问题上注意到不建议使用 connectSlotsByName
,但我所有的函数和槽都被调用完全相同,所以它应该像这样工作。
我不确定为什么会这样,欢迎任何帮助。
谢谢!
删除动作名称中的下划线。并将插槽定义为:
void MainWindow::on_actionDownloadFirmwareImage_triggered(bool checked)
问题已解决!
无需编码...
编译时,Qt 将 ui_mainwindow.h
放在新创建的构建文件夹中,而不是项目文件夹中。因此应用程序看不到更新的 .h
将新的 .h 复制到项目文件夹后,执行 qmake
并再次构建,一切正常。
我正在尝试升级我的旧应用程序..(再添加一项功能)。所以,我在 'File' 菜单中又添加了一项。
<addaction name="actionDownload_Firmware_Image"/>
<action name="actionDownload_Firmware_Image">
<property name="text">
<string>&Download Firmware Image</string>
</property>
<property name="menuRole">
<enum>QAction::ApplicationSpecificRole</enum>
</property>
</action>
在这里定义了我的插槽:
void MainWindow::on_actionDownload_Firmware_Image_triggered()
MainWindow.h>
private slots:
void on_actionDownload_Firmware_Image_triggered();
所以,我清理我的项目,run qmake
,构建项目...播放它,我得到与以前完全相同的 GUI,没有新的菜单项。
当 App 为 运行 时,我收到以下消息>
QMetaObject::connectSlotsByName: No matching signal for on_actionDownload_Firmware_Image_triggered()
我在 Whosebug 的其他问题上注意到不建议使用 connectSlotsByName
,但我所有的函数和槽都被调用完全相同,所以它应该像这样工作。
我不确定为什么会这样,欢迎任何帮助。
谢谢!
删除动作名称中的下划线。并将插槽定义为:
void MainWindow::on_actionDownloadFirmwareImage_triggered(bool checked)
问题已解决!
无需编码...
编译时,Qt 将 ui_mainwindow.h
放在新创建的构建文件夹中,而不是项目文件夹中。因此应用程序看不到更新的 .h
将新的 .h 复制到项目文件夹后,执行 qmake
并再次构建,一切正常。