簡體   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