繁体   English   中英

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

[英]Qt5: could not connect signal to slot

我正在尝试升级旧的应用程序。(再添加一个功能)。 因此,我在“文件”菜单中又添加了一项。

<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与以前完全相同,没有新的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM