2015-12-02 92 views
0

我有一個可用的qt應用程序。它不是一個MainWindow應用程序,迄今爲止根本沒有GUI元素。它在Linux機器啓動時運行(作爲後臺服務)。但是,它必須等待大約40-60秒,直到它可以在IP/DHCP對其自身進行排序時啓動。控制檯應用程序中的Linux Qt QSystemTrayIcon

所以我想給用戶一些反饋。我認爲添加系統托盤圖標看起來更專業一點,然後終端(雖然我可以這麼做)可能會很好。

但是,在閱讀QSystemTrayIcon的文檔後,我仍然不確定是否必須將它用作MainWindow樣式應用程序的一部分(即,是否需要添加主窗口並使sys托盤成爲其中的一部分),或者我可以在我的「控制檯」風格的應用程序中運行它嗎?

回答

1

我創建了一個控制檯應用程序與系統托盤我自己的win7,所以我沒有關於Linux客戶端的信息。它不顯示任何控制檯,它只使用日誌輸出和systemtray來顯示「用戶可讀的內容」。

您的應用程序需要使用QApplication而不是QCoreApplication以繪製小部件並創建QSystemTrayIcon以顯示系統托盤圖標。現在只需按照您的要求填寫菜單即可。

main.cpp代碼可能是這樣的:

int main(int ac, char** av){ 
    QApplication a(ac, av); 
    QSystemTrayIcon i; 
    QMenu* m = i.contextMenu(); 
    m->addAction(tr("hello world!")); 
    i.show(); 
    return a.exec(); 
} 

歡呼

+0

酷,但這也是在Linux中工作過(主要是)......但我不能設置圖標出於某種原因,但可以發佈一個單獨的問題。 –

+0

你不能設置它?生病需要搜索這個問題;) – Zaiborg

+0

是啊....我把這個問題在這裏:http://stackoverflow.com/questions/34041283/qt-qsystemtrayiconseticon-or-qicon-not-working,但後進一步閱讀。 ..它似乎也許它不工作有一個bug的某些發行版的linux :( –