2012-07-01 17 views
6

Sembra esserci una netta mancanza di documentazione del modulo GObjects per Python al momento, quindi forse qualcuno può aiutarmi.Invio di notifiche con GObjects

Sto facendo un'applicazione che occasionalmente dovrò notificare all'utente che si è verificato un evento. Ho trovato sull'utilizzo di from gi.repository import Notify e le relative classi dall'utilizzo di un breve snippet per le notifiche skype e la documentazione C, ma sembra non chiudersi quando chiamo Notify.uninit. Il programma si chiude, ma la piccola finestra di notifica rimane chiusa e deve essere chiusa facendo clic con il tasto destro su di essa e selezionando "Rimuovi". Quindi, mi chiedo se ci sia forse un altro modo come se ci fosse qualcosa di simile a come in Mac OS l'icona dell'applicazione scuote/rimbalzi quando succede qualcosa o in Windows l'icona dell'applicazione si illumina di un colore diverso?

Mi piace il sistema di notifica di Gnome 3 con lo stack di messaggi e così via, ma dal momento che non riesco a farlo scomparire quando termina l'applicazione, non voglio usarlo (a meno che qualcuno non sappia come fai questo ... potrebbe essere che mi sono dimenticato di impostare un timeout, ma non ha ancora senso sul perché non riesco a far scomparire lo spot di notifica).

risposta

6

La chiamata a Notify.uninit non deve far scomparire le notifiche, ma indica solo a libnotify che non sarà più necessario per l'applicazione. Per rendere le notifiche scomparse, devi chiuderle esplicitamente come nell'esempio seguente:

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 perché la documentazione di PyGobject manca in qualche modo dagli interni. – astrojuanlu

Problemi correlati