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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top