2012-07-01 40 views
6

目前似乎很明顯缺少有關Python的GObjects模塊的文檔,所以也許有人可以幫助我。用GObjects發送通知

我正在做一個應用程序,偶爾會通知用戶事件已經發生。我發現使用from gi.repository import Notify和使用短片段進行Skype通知和C文檔的相關類,但是當我調用Notify.uninit時,它似乎並沒有關閉。該程序關閉,但小通知窗口的東西仍然存在,必須通過右鍵單擊並選擇「刪除」來關閉。所以,我想知道是否有另一種方式,如果有什麼類似於Mac OS中的應用程序圖標在發生什麼事情時抖動/反彈,或者在Windows中應用程序圖標發出不同的顏色?

我喜歡Gnome 3通知系統的消息堆棧等,但由於我似乎無法讓我的應用程序退出時消失,所以我不想使用它(除非有人知道如何正確使用做到這一點...可能是因爲我忘了設置超時時間,但爲什麼我不能讓通知點消失,這仍然沒有意義)。

回答

6

調用Notify.uninit不應使通知消失,它只會告知libnotify它不再需要您的應用程序。要使通知消失,必須明確地關閉它們,如下例所示:

import time 
from gi.repository import Notify 

Notify.init('myapp') 

# optionally set an icon as the last argument 
n = Notify.Notification.new('summary text', 'body text', "dialog-information") 
n.show() 

# do whatever your application is doing 
time.sleep(10) 

n.close() 
Notify.uninit() 
+1

+1因爲PyGobject的文檔從互聯網上以某種方式丟失。 – astrojuanlu