Domanda

Ho usato questo sito Web abbastanza spesso per risolvere piccoli problemi che ho durante la programmazione a Python. Questa volta, in qualche modo non sono riuscito a trovare una soluzione adatta per la mia situazione. Ecco il mio problema:

Voglio aggiungere dinamicamente le voci a un widget GTK.VBox. Il problema è che non funziona nel modo in cui voglio che funzioni. Ho semplicemente un pulsante, la cui azione è aggiungere un widget aggiuntivo a un VBox. Purtroppo il widget non appare sulla finestra. Immagino che devo aggiungere qualcosa di simile a una chiamata di funzione riverniciata, ma non ho trovato niente del genere. Ecco un codice di esempio, che mostra il mio problema:

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()

Un apprezza di qualsiasi aiuto. Grazie in anticipo.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top