我正在使用 Glade 编写一个带有对话框的 python GUI。
如果我不使用 Glade,我会使用一个类来创建一个对话窗口 (dialag),运行它 (dialog.run),做任何事情,然后删除它 (dialog.destroy)。然后,当我再次需要该对话框时,我将重新实例化它。
格莱德在其中放了一把活动扳手。调用 Gtk.Builder 后,我可以通过以下方式获取对象:
dialog = builder.get_object("dialog")
response = dialog.run()
#do stuff
dialog.destroy()
我更喜欢运行、使用、销毁的工作方式,因为它将它从内存中删除。
但是,使用 Glade,在完成上述操作后,我无法让它再次工作,因为调用已被破坏,而且我不知道如何让 Glade 重新实例化它。
在我过去编写的程序中,我做了这个:
dialog = builder.get_object('dialog')
response = dialog.run()
# use it
dialog.hide()
当我再次需要它时,我会做一个:
dialog.show()
response = dialog.run()
# do stuff
dialog.hide()
为了绕过这个限制,但我对这种方式并不满意,感觉它有点像 hack(我猜对于 Glade,一切都是从一开始就创建的)。有没有办法让 Glade 库重新实例化一个对话框,而不是进行所有这些显示和隐藏?
谢谢,
纳尼