2012-05-16 20 views
0

我使用QSystemTrayIcon類來顯示TrayIconMenu,並且在TrayIconMenu上單擊時會顯示彈出式菜單。如果應用程序正忙,QSystemTrayIcon彈出菜單不會顯示

如果應用程序忙於處理其他任務,然後單擊TrayIcon,彈出式菜單不會顯示,但菜單邊框可見一段時間。相同的代碼適用於Mac。

通過以下方式我想顯示菜單:

QMenu *myMenu(); 
    QSystemTrayIcon myTrayIcon; 
    myTrayIcon.mytMenu()->show(); 

回答

1

有一些可以克服這一方式。本文可能對您有所幫助:Keeping the GUI Responsive

+0

謝謝dschulz,我會試着理解這一點。 – JChan

+0

@dschulz鏈接消失了!你能解釋它包含什麼嗎? –

+0

@ThePeacefulCoder糾正了斷開的鏈接。如果仍然失敗,請重新加載頁面,它應該可以正常工作。 – dschulz

0

可能問題出在一些廣泛的計算塊或大而慢的循環中。如果你知道這是哪裏的瓶頸,可以讓事件循環來處理排隊的事件簡單地計算循環中的某一點插入

QApplication::processEvents(); 

此外,嘗試將大型和昂貴的任務分成小任務和快任務,您可以讓事件循環來處理中間的事件。

+0

謝謝菲利克斯,我會嘗試執行processevents作爲臨時修復。 – JChan

+0

有時這是唯一一次性解決方案,不是臨時解決方案! –