Mettre à jour dynamiquement un gtk.vbox dynamiquement
-
12-11-2019 - |
Question
J'ai utilisé ce site Web assez souvent afin de résoudre de petits problèmes que j'ai lors de la programmation en Python. Cette fois, je n'ai pas pu trouver de solution appropriée pour ma situation. Alors, voici mon problème:
Je veux ajouter dynamiquement des entrées à un widget gtk.vbox. Le problème est que cela ne fonctionne pas comme je veux que cela fonctionne. J'ai simplement un bouton, dont l'action consiste à ajouter un widget supplémentaire à une VBOX. Malheureusement, le widget n'apparaît pas sur la fenêtre. Je suppose que je dois ajouter quelque chose comme un appel de fonction de repection, mais je n'ai rien trouvé de tel. Voici un exemple de code, montrant mon problème:
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("add checkbox")
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 "adding checkbox..."
def close_application(self, widget):
gtk.main_quit()
# run it
a = DynamicVbox()
A apprécier toute aide. Merci d'avance.
Pas de solution correcte