如何使用python和Glade来销毁对话框

2024-09-27 00:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Glade编写一个带有对话框的python GUI。在

如果我没有使用Glade,我会使用一个类来创建一个对话框窗口(dialag),运行它(对话.运行),执行任何操作,然后将其移除(对话框.销毁). 当我再次需要对话框时,我会重新实例化它。在

格莱德把一个活动扳手放在这里。调用后Gtk建造者,我可以用类似于:

dialog = builder.get_object("dialog")
response = dialog.run()
#do stuff
dialog.destroy()

我更喜欢运行、使用、销毁的工作方式,因为它会将它从内存中删除。在

然而,使用Glade,在我完成上述操作之后,我不能再次让它工作,因为调用已经被破坏了,我不知道如何让Glade重新激活它。在

在我以前写的程序中,我做过这样的事情:

^{pr2}$

当我再次需要它时,我会做一个:

dialog.show()
response = dialog.run()
# do stuff
dialog.hide()

为了绕过这个限制,但我对这种方式并不满意,我觉得这有点麻烦(我想对于格莱德来说,一切都是从一开始就创造出来的)。有没有办法让gladelibs重新实例化一个对话框,而不是做所有这些显示和隐藏?在

谢谢

纳尼


Tags: 实例rungtkresponse方式gui对话do
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:56

是的-您必须创建一个新的builder对象并重新加载Glade文件。一个builder对象创建了一个对话框,如果销毁了它,那么它就不见了。在

我不认为隐藏和显示对话框是一种黑客行为。如果记忆是一个严重的问题,你可能会想要破坏和重新创造,但除此之外,我不认为这有多大区别。在

相关问题 更多 >

    热门问题