Wie kann man ein Redraw einer ComboBox erzwingen?

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
Benutzeravatar
framp
User
Beiträge: 52
Registriert: Samstag 9. Oktober 2010, 22:16
Wohnort: bei Stuttgart
Kontaktdaten:

In meinem GUI sollen abhängig von gewählten RadioButtons unterschiedliche Inhalte in einer Combo Box angezeigt werden. Das Ändern der Combobox Inhalte funktioniert gut. Wenn ich in der ComboBox etwas selektiere sehe ich immer die jeweils richtigen Inhalte. Leider schaffe ich es nicht, dass nach dem Ändern der RadioButton (und dem Ändern des ComboBoxInhaltes) dieser geänderte Inhalt sofort auch im GUI angezeigt wird.
Anbei der Code der beim Ändern eines RadioButtons augeführt wird:

Code: Alles auswählen

   def wiredButtonSelected(self,widget, data=None):
        if widget.get_active():
            self.glade.get_object("ssidHbox").set_sensitive(False)
        self.connectionWireless=not widget.get_active()
        self.connectionType=1
        model=self.initializeTopology()                     # fill combo box with contents
        self.topologyCombo.set_model(model)
        self.executionCombo.set_active(0)
# now redraw changed combo box
        self.topologyCombo.queue_resize() # does not work
        self.topologyCombo.queue_draw() # dows not work
        while gtk.events_pending():
            gtk.mainiteration()
Weiss jemand wie ich den ComboBox Redraw erzwingen kann?
Zuletzt geändert von framp am Sonntag 10. Juni 2012, 20:21, insgesamt 2-mal geändert.
Benutzeravatar
framp
User
Beiträge: 52
Registriert: Samstag 9. Oktober 2010, 22:16
Wohnort: bei Stuttgart
Kontaktdaten:

Habe das Problem mal runterstrippt um den Code hier zu posten - und dabei den Weg gefunden, wie es geht. Ist einfach ein kleiner Typo :-(

Code: Alles auswählen

self.topologyCombo.set_model(model)
self.executionCombo.set_active(0)
muss

Code: Alles auswählen

self.topologyCombo.set_model(model)
self.topologyCombo.set_active(0)
sein und dann funktioniert der GUI Update ...
Antworten