2012-03-01 67 views
0

我已經爲QT應用程序實現了托盤圖標菜單。但托盤圖標菜單在點擊其他地方後不會隱藏。以下是我的代碼:點擊其他地方後,TrayMenu無法隱藏

m_trayIconMenu = new QMenu(this); 
m_trayIconMenu->addAction(m_restoreAction); 
m_trayIconMenu->addAction(m_quitAction); 
m_trayIcon = new QSystemTrayIcon(this); 
m_trayIcon->setContextMenu(m_trayIconMenu); 
+0

如果點擊我的主應用程序,trayiconmenu可以消失。 – shernshiou 2012-03-01 02:43:22

回答

3

嘗試刪除該指針below.Tied你m_trayIconMenu,而不是父母的QSystemTrayIcon this指針。

m_trayIconMenu = new QMenu(); 
m_trayIconMenu->addAction(m_restoreAction); 
m_trayIconMenu->addAction(m_quitAction); 
m_trayIcon = new QSystemTrayIcon(this); 
m_trayIcon->setContextMenu(m_trayIconMenu); 
+0

哇!有用!感謝您的及時回覆 – shernshiou 2012-03-01 02:47:50

1

如果你工作在Windows中,必須執行其他的Win32 API SetForegroundWindow()

SetForegroundWindow(m_trayIconMenu->parent()->winId()) 

推薦插槽,執行它 'aboutToShow' QMenu的。

這個api適合我,你可以試試。