gpt4 book ai didi

python - python中如何使用Glade的对话框运行、销毁、复用

转载 作者:太空狗 更新时间:2023-10-30 01:29:46 27 4
gpt4 key购买 nike

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

如果我不使用 Glade,我会使用一个类来创建一个对话窗口 (dialag),运行它 (dialog.run),执行它所做的任何事情,然后将其删除 (dialog.destroy)。当我再次需要对话框时,我会重新实例化它。

Glade 在其中放了一把事件 Spanner 。调用 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 库重新实例化对话框而不是进行所有这些显示和隐藏?

谢谢,

纳尼

最佳答案

是的——您必须创建一个新的 builder 对象并重新加载 Glade 文件。一个 builder 对象创建一个对话框,如果您销毁它,它就会消失。

我不一定认为隐藏和显示对话框是一种 hack。如果内存是一个严重的问题,您可能想要销毁并重新创建,但除此之外我认为这没有太大区别。

关于python - python中如何使用Glade的对话框运行、销毁、复用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13785014/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com