Ich benutze diese Website ziemlich oft, um kleine Probleme zu lösen, die beim Programmieren in Python auftreten. Dieses Mal konnte ich jedoch irgendwie keine geeignete Lösung für meine Situation finden. Hier ist also mein Problem:
Ich möchte dynamisch Einträge zu einem gtk.VBox Widget hinzufügen. Das Problem ist, dass es nicht so funktioniert, wie ich es möchte. Ich habe einfach einen Button, dessen Aktion es ist, ein zusätzliches Widget zu einer VBox hinzuzufügen. Leider erscheint das Widget nicht auf dem Fenster. Ich vermute, dass ich etwas wie einen Repaint-Funktionsaufruf hinzufügen muss, aber ich habe nichts Derartiges gefunden. Hier ist ein Beispielcode, der mein Problem zeigt:
import gtk
class DynamicVbox:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("destroy", self.close_application)
self.window.set_size_request(400,320)
#a hBox to put the button and the dynamic vBox
hBox = gtk.HBox(False, 0)
addButton = gtk.Button("Checkbox hinzufügen")
addButton.connect("clicked", self.AddCheckButton)
self.vBox = gtk.VBox(False, 0)
self.vBox.pack_start(gtk.CheckButton("CheckButton"), True, True, 1)
hBox.pack_start(self.vBox, True, True, 5)
hBox.pack_end(addButton, False, False, 5)
self.window.add(hBox)
#start gtk
self.window.show_all()
gtk.main()
def AddCheckButton(self, button):
self.vBox.pack_start(gtk.CheckButton("CheckButton"), True, True, 1)
print "Checkbox wird hinzugefügt..."
def close_application(self, widget):
gtk.main_quit()
# run it
a = DynamicVbox()
Ich wäre über jede Hilfe dankbar. Danke im Voraus.