2009-07-24 11 views
5

Używam Glade 3, aby utworzyć plik GtkBuilder dla aplikacji PyGTK, nad którą pracuję. Ma na celu zarządzanie przepustowością, dlatego mam gtk.ComboBox do wyboru interfejsu sieciowego do śledzenia.Jak dodawać elementy do pliku gtk.ComboBox utworzonego przez polanę w środowisku wykonawczym?

Jak dodać ciągi do ComboBox w czasie wykonywania? To jest to, co do tej pory miałem:

self.tracked_interface = builder.get_object("tracked_interface") 

self.iface_list_store = gtk.ListStore(gobject.TYPE_STRING) 
self.iface_list_store.append(["hello, "]) 
self.iface_list_store.append(["world."]) 
self.tracked_interface.set_model(self.iface_list_store) 
self.tracked_interface.set_active(0) 

Ale ComboBox pozostaje pusty. Próbowałem RTFM, ale po prostu odszedł bardziej zagubiony, jeśli w ogóle.

Pozdrawiam.

Odpowiedz

6

Albo może po prostu utworzyć i wstawić combo box samodzielnie za pomocą gtk.combo_box_new_text(). Wtedy będziesz mógł używać skrótów gtk do tekstu append, insert, prepend i remove.

combo = gtk.combo_box_new_text() 
combo.append_text('hello') 
combo.append_text('world') 
combo.set_active(0) 

box = builder.get_object('some-box') 
box.pack_start(combo, False, False) 
5

Hej, rzeczywiście mogę odpowiedzieć na własne pytanie!

Trzeba dodać gtk.CellRendererText się tam na to, aby rzeczywiście render:

self.iface_list_store = gtk.ListStore(gobject.TYPE_STRING) 
self.iface_list_store.append(["hello, "]) 
self.iface_list_store.append(["world."]) 
self.tracked_interface.set_model(self.iface_list_store) 
self.tracked_interface.set_active(0) 
# And here's the new stuff: 
cell = gtk.CellRendererText() 
self.tracked_interface.pack_start(cell, True) 
self.tracked_interface.add_attribute(cell, "text", 0) 

Źródło, oczywiście, PyGTK FAQ.

Poprawione przykład dzięki Joe McBride

2

Just in case ktoś używa tego, ostatni wiersz kodu powinny być:

self.tracked_interface.add_attribute(cell, "text", 0) 

zamiast:

self.tracked_interface.(cell, "text", 0) 
+0

będę zmieniać moją odpowiedź. Dzięki! – Bernard

Powiązane problemy