gpt4 book ai didi

python - 从使用 libglade 到 GtkBuilder 的转换步骤是什么? (Python)

转载 作者:太空狗 更新时间:2023-10-30 00:25:47 25 4
gpt4 key购买 nike

我有一个使用 libglade 的小项目,并使用以下内容加载 xml 文件:

self.gladefile = "sdm.glade"
self.wTree = gtk.glade.XML(self.gladefile)
self.window = self.wTree.get_widget("MainWindow")
if (self.window):
self.window.connect("destroy", gtk.main_quit)
dic = { "on_button1_clicked" : self.button1_clicked,
"on_MainWindow_destroy" : gtk.main_quit}
self.wTree.signal_autoconnect(dic)

在 glade 中转换我的项目后,我需要进行哪些结构更改?我在 Ubuntu 9.04 上。

最佳答案

您需要改用 gtk.Builder。此类可以加载任意数量的 UI 文件,因此您需要手动添加它们,无论是作为文件还是作为字符串:

self.uifile = "sdm.ui"
self.wTree = gtk.Builder()
self.wTree.add_from_file(self.uifile)

代替 get_widget,只需在构建器类上使用 get_object:

self.window = self.wTree.get_object("MainWindow")
if self.window:
self.window.connect("destroy", gtk.main_quit)

要连接信号,只需使用 connect_signals,它还需要一个字典:

dic = { "on_button1_clicked" : self.button1_clicked, 
"on_MainWindow_destroy" : gtk.main_quit}
self.wTree.connect_signals(dic)

以前是这种情况(至少在 GTK+ 2.12 中,不确定它是否仍然相同)你只能调用一次 connect_signals,任何在第一次调用期间未连接的信号都会永远不会被连接。这在 glade 中有所不同,所以如果您以前依赖该功能,请小心。

关于python - 从使用 libglade 到 GtkBuilder 的转换步骤是什么? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/748872/

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