2011-04-27 67 views
4

我有簡單的通知應用程序,我使用Qt 4.7.1用C++寫的,在系統托盤位於應用程序。每次有消息傳來時,我需要它彈出一個窗口。但是,我需要的是豐富的(即我要添加顏色和圖片的話)。但是,我擁有的僅僅是默認的彈出消息框。我怎樣才能創建一個新的更豐富的東西,隨時會彈出托盤圖標?的Qt:如何讓裝飾豐富的彈出窗口,而不是默認的QSystemTrayIcon彈出窗口

+0

爲了澄清,你問的造型可以使用QSystemTrayIcon :: showMessage()或樣式某種自定義窗口小部件會顯示氣球通知? – 2011-04-27 16:46:30

+0

是的,這是我的意思 – user63898 2011-04-28 11:44:03

+0

+1回答是「或問題」與簡單的「是」。 – 2011-12-13 08:56:33

回答

5

所有的qt widget類都可以通過stylesheets進行設置,具體取決於創建彈出式菜單(設計器或代碼中)的樣式表,併爲其指定一個樣式表。您可以通過分配樣式使用控件

的上下文菜單中經過進一步審查小組件測試在設計樣式,在QSystemTrayIcon::showMessage()呼叫搭設系統通知。我不知道它是否可以被設計。該qsystemtrayicon_win.cpp文件中的qt的分佈呈現出一種變通方法,並給出瞭如何找到托盤中的圖標的位置的方式(見QSystemTrayIconSys::findIconGeometry)。一旦你有了位置,你就可以在那個位置彈出自己的窗口。我沒有深入,我不知道你是否可以通過Qt的公共端獲取信息的位置。你可能不得不用所有的窗戶。

+0

有趣......我不知道會彈出設置樣式。你有沒有設法做到這一點? – 2011-04-27 13:54:36

+0

取決於你正在講什麼課,沒有QPopup,但QWidget,QFrame,QMenu等都可以被設計。我已經寫了一個應用程序,做的很少自定義繪製,但使用所有的標準組件,甚至QTableView,而不是看起來像一個Qt應用程序在所有 – 2011-04-27 15:01:54

+0

它不那麼容易這樣做是爲什麼im問,一些建議繼承和重新實現顯示消息再次這是不容易或可能的 – user63898 2011-04-28 11:45:47