Seite 1 von 1

Glade - GtkComboBox einen neuen Eintrag hinzufügen?

Verfasst: Freitag 29. Juni 2007, 18:31
von EnTeQuAk
Hallo!


Ich habe folgendes Problem:


Ich benutze gtk.glade.XML, um meine GUI zu erzeugen. Nun habe ich eine ComboBox, die ich gerne mit Daten befüllen würde.

Allerdings habe ich gelesen, das das nur geht, wenn die ComboBox mit

Code: Alles auswählen

gtk.combo_box_new_text()
erstellt wurde.

Ich erstelle sie aber mit

Code: Alles auswählen

self.projects_chooser = self.widgets.get_widget('project_chooser')
Und bekomme eine fertige ComboBox zurück.

Gibt es hier noch die Möglichkeit irgentwie die Einträge der Box zu ändern?


MfG EnTeQuAk

Verfasst: Samstag 30. Juni 2007, 07:17
von EnTeQuAk
OKe ;) Ich habe bisher keine Lösung gefunden.

Jedoch habe ich das Problem erstmal bei Seite gelegt, indem ich einfach ein TreeView benutze :)


So funktionierts auch ganz schick.



MfG EnTeQuAk

€dit:

Was ich gerade gefunden habe:
http://unpythonic.blogspot.com/2007/03/ ... lade3.html
bzw.
http://unpythonic.blogspot.com/2007/03/ ... art-2.html

Damit müsste sich das auch umsetzen lassen. :)

Verfasst: Dienstag 25. März 2008, 23:35
von Chrispy
Gibt es hier noch die Möglichkeit irgentwie die Einträge der Box zu ändern?


Ich machs so:

Code: Alles auswählen

import gobject

.....

self.projects_chooser = self.widgets.get_widget('project_chooser')

self.liststore = gtk.ListStore(gobject.TYPE_STRING)
self.projects_chooser.set_model(self.liststore)
self.cell = gtk.CellRendererText() 
self.projects_chooser.pack_start(self.cell) 
self.projects_chooser.add_attribute(self.cell, 'text', 0)
Zur Manipulation:

Code: Alles auswählen

self.projects_chooser.append_text("_text_")

self.projects_chooser.prepend_text("_text_", "_position_")

self.projects_chooser.remove_text("_position_")
Um den Text des aktuell selektierten Eintrags zu erhalten:

Code: Alles auswählen

self.model = self.projects_chooser.get_model()
self.active = self.projects_chooser.get_active()
self.text = self.model[self.active][0]
print "%s" % self.text
Ein Blick in die Referenz würde sicher nicht schaden.