使用glade和pygobject Gtk3

12
我正在使用迁移指南(Porting GTK2 to GTK3)将脚本转换为使用Gtk3。我将import pygtk更改为from gi.repository import Gtk等等......但是我卡住了,因为glade模块是从gtk模块加载的。
 import gtk
 import gtk.glade

但是现在已经没有任何方法可以做到这一点了。

请注意,我只需要替换 gtk.glade.XML() 的方法...

2个回答

14

解决方案非常明显,调用 Gtk.Builder() 后,需要使用 gtk-builder-convert 命令将旧的 Glade 界面转换为正确版本的界面文件。

 $ gtk-builder-convert myui.glade myui.ui

然后,在Python脚本中:

 from gi.repository import Gtk
 builder = Gtk.Builder()
 builder.add_from_file("myui.ui")

感谢Riccardo的帮助。


4

这应该可以工作

from gi.repository import Gtk
builder = Gtk.Builder()
builder.add_from_file("project.xml")

我被Python称为名字,因为我的XML文件有一个非有效的根元素叫做glade-interface :) - MP0
3
我遇到了同样的问题。如果他们想让我们使用 Glade 和 PYGObject,我们真的需要一些简单的教程。现在太过依赖 PyGTK。 - Schodemeiss
它起作用了吗?我无法测试。在这种情况下,我会更改措辞为“这个有效”。 - Riccardo Galli
没有,它没有成功,看看我的第一条评论。project.xml必须是什么形式?它不是glade文件吗? - MP0
据我所记,很久以前,libglade被gtk.builder取代,以拥有官方的gtk api。格式必须已经改变了。请参阅http://www.micahcarrick.com/gtk-builder-libglade-faq.html。 - Riccardo Galli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接