我有一个用Python编写的程序,使用PyGTK + Glade。我使用Glade创建布局,在内部,我创建了一些其他元素,包括标签列表。我有一个大小为3的VBox,这3个元素中的每一个都包含一个包含HBox的EventBox。
每个HBox都会包含一组动态变化的标签。问题是在将elemens添加到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(),但结果是一样的。