[英]Qt5: could not connect signal to slot
我正在尝试升级旧的应用程序。(再添加一个功能)。 因此,我在“文件”菜单中又添加了一项。
<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与以前完全相同,没有新的Menu项。
运行App时,出现以下消息>
QMetaObject::connectSlotsByName: No matching signal for on_actionDownload_Firmware_Image_triggered()
我在关于stackoverflow的其他问题上注意到不建议使用connectSlotsByName
,但是我的所有函数和插槽都完全相同,因此它应该像这样工作。
我不确定为什么会这样,欢迎任何帮助。
谢谢!
问题已经解决了!
无需编码...
在编译时,Qt将ui_mainwindow.h
在其新创建的build文件夹中,而不是在项目文件夹中。因此,该应用程序看不到更新的.h
将新的.h复制到项目文件夹后,执行qmake
并再次构建,一切看起来都很好。
删除操作名称中的下划线。 并将插槽定义为:
void MainWindow::on_actionDownloadFirmwareImage_triggered(bool checked)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.