问题 使用与pygobject Gtk3的林间空地


我正在使用迁移指南转换脚本以使用Gtk3(将GTK2移植到GTK3)。我转换了我的 import pygtk 到了 from gi.repository import Gtk 等等...

我被困了,因为glade模块是从模块gtk加载的:

 import gtk
 import gtk.glade

但是现在再也没办法了。

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


7450
2018-05-12 21:27


起源



答案:


嗯,解决方案很明显,打电话给 Gtk.Builder() 一个人需要转换旧的林间空地界面 gtk-builder-convert 命令以正确的版本获取接口文件。

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

然后,在python脚本中:

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

感谢Riccardo。


13
2018-05-13 17:52





这应该工作

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

3
2018-05-12 21:56



好吧,我得到Python的名字,因为我的XML文件有一个无效的根元素叫 glade-interface :) - MP0
我得到同样的问题。我们真的需要一些关于使用Glade和PYGObject的简单教程,如果他们想要我们使用它们。目前对PyGTK的依赖太多了。 - Schodemeiss
它有用吗?我无法测试它。在那种情况下,我会将措辞改为“This works” - Riccardo Galli
它没有,请看我的第一个评论。 project.xml必须具有什么形式?这不是林间文件吗? - MP0
到目前为止,我记得,时间之前libglade被gtk.builder取代,有一个官方的gtk api。格式必须已更改。看到 micahcarrick.com/gtk-builder-libglade-faq.html - Riccardo Galli


答案:


嗯,解决方案很明显,打电话给 Gtk.Builder() 一个人需要转换旧的林间空地界面 gtk-builder-convert 命令以正确的版本获取接口文件。

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

然后,在python脚本中:

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

感谢Riccardo。


13
2018-05-13 17:52





这应该工作

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

3
2018-05-12 21:56



好吧,我得到Python的名字,因为我的XML文件有一个无效的根元素叫 glade-interface :) - MP0
我得到同样的问题。我们真的需要一些关于使用Glade和PYGObject的简单教程,如果他们想要我们使用它们。目前对PyGTK的依赖太多了。 - Schodemeiss
它有用吗?我无法测试它。在那种情况下,我会将措辞改为“This works” - Riccardo Galli
它没有,请看我的第一个评论。 project.xml必须具有什么形式?这不是林间文件吗? - MP0
到目前为止,我记得,时间之前libglade被gtk.builder取代,有一个官方的gtk api。格式必须已更改。看到 micahcarrick.com/gtk-builder-libglade-faq.html - Riccardo Galli