题
我在使用的PyGTK和GTK生成器窗口的问题。这里是我的代码的简化版本。
class GUI:
def __init__(self,parent):
builder_file = "./ui/window.builder"
self.builder = gtk.Builder()
self.builder.add_from_file(builder_file)
self.window = self.builder.get_object('main')
self.builder.connect_signals( self )
self.populate_window()
self.window.show()
def populate_window(self):
hbox = self.builder.get_object('hbox')
hbox.pack_start( somewidgets )
def on_destroy(self):
self.window.destroy()
GTK的助洗剂文件只包含具有水平包装盒和信号到销毁顶层窗口。这似乎工作,创建并填充就好了窗口,但如果我试图摧毁已被填充任何其他部件蟒蛇段错误的窗口。
我想这是一些问题与包装新的小部件都不在构建器文件,以便pygtk的不知道该怎么destory他们,但我不知道,但。
感谢您的帮助。
解决方案
您“消灭”处理程序被调用时,窗口是在尚未破坏,因此,此代码片断:
def on_destroy(self):
self.window.destroy()
将产生一个无限递归调用。在其他方面,你正在摧毁的东西是还没有被破坏。
这无关与GtkBuilder或手工编码的小部件,但我怀疑我失去了一些东西,因为我不知道为什么你需要连接东西的GtkWindow ::摧毁。
其他提示
使用gtk.main_quit()
。
def on_destroy(self): gtk.main_quit()
不隶属于 StackOverflow