将 GTK 1.2 glade XML 文件转换为 glade 现在可以读取的内容

Converting GTK 1.2 glade XML file to something glade can now read

old project I wrote circa 2000 I have a glade file 中,我想将其转换为 glade 现在可以阅读的内容,我将在 PyGtk 中使用。我已经搜索了类似的问题并查看了代码更改的内容,但我现在只对转换 glade 文件感兴趣。

当我 运行 gtk-builder-convert 我得到 Python 回溯:

Traceback (most recent call last):
  File "/usr/bin/gtk-builder-convert", line 799, in <module>
     sys.exit(main(sys.argv))
      File "/usr/bin/gtk-builder-convert", line 787, in main
   conv.parse_file(input_filename)
  File "/usr/bin/gtk-builder-convert", line 162, in parse_file
    self._parse()
  File "/usr/bin/gtk-builder-convert", line 234, in _parse
   assert glade_iface, ("Badly formed XML, there is "
AssertionError: Badly formed XML, there is no <glade-interface> tag.

确实如此。文件开始:

<?xml version="1.0"?>
<GTK-Interface>

建议?

如果您的 XML 文件以 GTK-Interface 开头,则表示您使用的是 GTK+ 1.2。

您不太可能将这样一个旧的 Glade 文件机械地转换成可以与现代 API 一起使用的文件 — 即使您将自己限制在 GTK+ API 的遗留 2.0 版本中。您的 UI 描述将包含已弃用的属性、信号和 类 — 并且没有针对这些的直接 1:1 映射。

上一次更改 UI 定义的 XML 格式是在 2007 年,当时引入了 GtkBuilder,但该格式主要基于 Glade XML 用于 GTK+ 2.0,以至于像 gtk-builder-convert 这样的简单机械脚本可以将旧格式转换为新格式。你的 XML 甚至早于那个。

感谢 ebassi 提供的信息,我最后做的是 运行 libglade-convert 将其转换为 gtk 2.0,然后 gtk -builder-convert 走完剩下的路。当然有很多错误,它并不完美,但它是一个开始。

使用 Gtk3+ 和 Glade3+ 通过以下步骤从 conda 安装,它对我来说 Linux。

  1. Glade3+ 用户界面.
  2. 中打开 Gtk1+ older glade XML 文件
  3. 单击 Glade3+ 用户界面保存 按钮
  4. 打开终端以 conda 激活 gtk-builder-convert infile outfile.

祝你好运!