nar*_*nie 5 python gtk dialog glade builder
我正在使用Glade编写带有对话框的python GUI.
如果我没有使用Glade,我会使用一个类来创建一个对话框窗口(dialag),运行它(dialog.run),做它做的任何事情,然后删除它(dialog.destroy).然后,当我再次需要对话框时,我会重新实例化它.
格莱德放了一把猴子扳手.在调用Gtk.Builder之后,我可以使用以下内容获取对象:
dialog = builder.get_object("dialog")
response = dialog.run()
#do stuff
dialog.destroy()
Run Code Online (Sandbox Code Playgroud)
我更喜欢运行,使用,破坏工作方式,因为它从内存中删除它.
然而,使用Glade,在我执行上述操作之后,我无法让它再次工作,因为调用已被破坏,我不知道让Glade重新实现它的方法.
在我写过的过去的程序中,我做了一个:
dialog = builder.get_object('dialog')
response = dialog.run()
# use it
dialog.hide()
Run Code Online (Sandbox Code Playgroud)
当我再次需要它时,我会做一个:
dialog.show()
response = dialog.run()
# do stuff
dialog.hide()
Run Code Online (Sandbox Code Playgroud)
为了解决这个限制,但是我并不满足于这样做这种方式感觉它有点像黑客(而且我想与Glade一样,一切都是在开始时创建的).有没有办法让Glade库重新实例化一个对话框,而不是做所有这些显示和隐藏?
谢谢,
Narnie
是的 - 您必须创建一个新builder对象并重新加载 Glade 文件。一个builder对象创建一个对话框,如果你销毁它,它就会消失。
我不一定认为隐藏和显示对话框是一种黑客行为。如果内存是一个严重问题,您可能想要销毁并重新创建,但除此之外,我认为这没有多大区别。
| 归档时间: |
|
| 查看次数: |
2293 次 |
| 最近记录: |