Qt5:无法将信号连接到插槽

Qt5: could not connect signal to slot

我正在尝试升级我的旧应用程序..(再添加一项功能)。所以,我在 'File' 菜单中又添加了一项。

<addaction name="actionDownload_Firmware_Image"/>

<action name="actionDownload_Firmware_Image">


<property name="text">
    <string>&amp;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 并再次构建,一切正常。