У меня есть программа, написанная на Python, использующая PyGTK + Glade. Я использую Glade для создания макета и внутренне создаю некоторые другие элементы, включая список меток. У меня есть VBox размером 3, каждый из этих 3 элементов содержит EventBox, который содержит HBox.
Каждый HBox будет содержать динамически изменяющийся набор меток. Проблема в том, что после добавления элементов в HBox он ничего не показывает или не перерисовывается.
Как я уже сказал, есть некоторые события / функции, которые изменяют HBox, однако что-то подобное даже не работает:
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file("maininterface.glade")
self.window = self.builder.get_object("mainWindow")
self.fila1 = self.builder.get_object("hbox1")
self.fila2 = self.builder.get_object("hbox2")
self.fila3 = self.builder.get_object("hbox3")
self.window.show_all()
lab0 = gtk.Label("XXXXXX")
self.fila1.add(lab0) #this label is not shown
#if I uncomment the next line, it works:
#self.window.show_all()
Очевидно, я что-то упустил, я не знаю что. Я мог бы сделать все добавления до show_all (), но это просто работает для инициализации, программа удалит / добавит элементы на лету.
PD: я использовал pack_end () вместо add (), но результат тот же.