2012-01-04 10 views
8

In GTK2, StatusBar era solo un semplice contenitore come un HBox. Glade 3 (GTK3) ora mostra questo messaggio quando provo ad aggiungere widget figlio alla mia barra di stato:Come si aggiungono i bambini a StatusBar in Glade3?

Widgets of type Status Bar need placeholders to add children.

Quali sono i segnaposti?

Preferisco creare l'interfaccia utente interamente in Glade, ma se ciò non funziona più, anche la sua costruzione in codice va bene. Sto usando Python 3.2 e Gtk tramite l'introspezione di GObject.

risposta

6

In Gnome 3, le barre di stato non sono più contenitori; sono più simili a pile di messaggi. Per visualizzare un messaggio, ottenere un contesto fresco id e spingere il messaggio nello stack di messaggi associati alla barra di stato:

context_id = statusbar.get_context_id("progress_message") 
statusbar.push(context_id, "Almost done...") 

o

statusbar.push(1, "Almost done...") 

E per rimuovere nuovamente il messaggio, utilizzare statusbar.pop(1). Non è quindi possibile avere cose come le barre di avanzamento o le immagini nella barra di stato.

Vedere anche: GtkStatusbar at the Gnome Dev Center