@Niko Если мой ответ ответил на ваш вопрос, нажмите на галочку рядом с ним, чтобы сайт знал, что на него дан ответ.

ользую этот сайт довольно часто, чтобы решить небольшие проблемы, которые возникают у меня при программировании на Python. На этот раз я как-то не смог найти подходящего решения для моей ситуации. Итак, вот моя проблема:

Я хочу динамически добавлять записи в виджет gtk.VBox. Проблема в том, что это не работает так, как я хочу, чтобы это работало. У меня просто есть кнопка, действие которой заключается в добавлении дополнительного виджета в VBox. К сожалению, виджет не появляется в окне. Я думаю, мне нужно добавить что-то вроде вызова функции перерисовки, но я не нашел ничего подобного. Вот пример кода, показывающий мою проблему:

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

Спасибо за любую помощь. Заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос