2011-03-07 64 views
0

我有一個Qt應用程序,系統托盤圖標和右鍵單擊圖標時顯示的菜單。出於某種原因,菜單項在調試模式下工作正常,但不能在發佈模式下工作。系統托盤圖標工作在調試但不是釋放模式,在Qt

QAction* closeAction = new QAction("Close", this); 

QMenu* trayIconMenu = new QMenu(this); 
trayIconMenu->addAction(closeAction); 

QSystemTrayIcon* trayIcon = new QSystemTrayIcon(this); 
trayIcon->setContextMenu(trayIconMenu); 
QIcon trayIconIcon("Application.png"); 
trayIcon->setIcon(trayIconIcon); 
trayIcon->show(); 

QObject::connect(closeAction, SIGNAL(triggered()), this, SLOT(trayIconCloseAction_triggered())); 


void MainWindow::trayIconCloseAction_triggered() { 
    MessageBoxes::info("Close item clicked"); 
} 

當我在圖標上單擊鼠標右鍵,在菜單中顯示出來,但點擊「關閉」什麼都不做 - trayIconCloseAction_triggered()不叫的。它只在發佈模式下執行此操作。有人知道可能是什麼原因嗎?

我使用的是Windows 7和Qt Creator,使用Qt的MSV-2010靜態構建版本構建。

編輯:圖標沒有反應單擊事件(「激活」信號),無論是。再次在調試模式下工作,但不能發佈。

+0

嘗試重建您的項目:1.刪除build目錄中的「release」和「debug」文件夾; 2.使用Qt Creator中的「build」菜單中的「clean all」動作; 3.切換到release模式然後使用「重建全部」動作,4.按Ctrl + R並檢查所需的功能 – Johnny 2011-03-07 06:51:00

+0

增加:3.「重建所有」之前也使用「運行qmake」動作 – Johnny 2011-03-07 07:00:35

+1

是的,做了很多,非常感謝!隨意添加您的評論作爲答案,我會將其標記爲已接受。 – 2011-03-07 09:17:03

回答

1

在這樣的情況有一個大致的建議:

  1. 擦除「釋放」,並在你的build目錄「調試」文件夾,
  2. 使用「清除所有」在Qt的「構建」菜單操作創建者
  3. 切換到發佈模式,然後使用「運行qmake」,「重建所有」操作,
  4. 按Ctrl + R並檢查所需的功能。