我使用的是Qt,我希望我的程序能夠進入系統托盤,但也可以顯示爲窗口。在後臺運行程序,將其放入系統托盤中
例如:我啓動我的程序,它打開一個窗口,...,我關閉了窗口,但程序沒有關閉,它仍然在後臺。然後,我可以通過系統托盤中創建的圖標重新打開窗口。
我知道如何使用QSystemTrayIcon創建圖標,並在右鍵單擊圖標時創建菜單,並通過菜單啓動事件。然而我不知道該怎麼做,所以當我關閉程序的窗口時,程序仍然在後臺打開。
爲了說明我的觀點,它將與Steam相同。
我使用的是Qt,我希望我的程序能夠進入系統托盤,但也可以顯示爲窗口。在後臺運行程序,將其放入系統托盤中
例如:我啓動我的程序,它打開一個窗口,...,我關閉了窗口,但程序沒有關閉,它仍然在後臺。然後,我可以通過系統托盤中創建的圖標重新打開窗口。
我知道如何使用QSystemTrayIcon創建圖標,並在右鍵單擊圖標時創建菜單,並通過菜單啓動事件。然而我不知道該怎麼做,所以當我關閉程序的窗口時,程序仍然在後臺打開。
爲了說明我的觀點,它將與Steam相同。
你需要重新實現QWidget::closeEvent
,隱藏窗口和忽略的QCloseEvent
。
對此進行了詳細的Qt System Tray Icon Example解釋,這裏是最有趣的部分:
void Window::closeEvent(QCloseEvent *event)
{
if (trayIcon->isVisible()) {
hide();
event->ignore();
}
}
的可能的複製[如何正確地實現了「最小化到托盤」功能的Qt?](HTTP:/ /stackoverflow.com/questions/3332257/how-do-i-properly-implement-a-minimize-to-tray-function-in-qt) –
@Torbjörn它不是一個完全重複的「最小化」和「關閉」需要以稍微不同的方式處理 –
@ms我懂了。然後,對於噪音抱歉。 –