【问题标题】:Converting GTK 1.2 glade XML file to something glade can now read将 GTK 1.2 glade XML 文件转换为 glade 现在可以读取的文件
【发布时间】:2019-08-26 22:32:30
【问题描述】:

old project 中,我写了大约 2000 年,我有一个 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>

建议?

【问题讨论】:

    标签: gtk3 glade


    【解决方案1】:

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

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

    上一次更改 UI 定义的 XML 格式是在 2007 年,当时引入了 GtkBuilder,但该格式很大程度上基于 GTK+ 2.0 的 Glade XML,以至于像 @ 这样的简单机械脚本987654323@ 可以将旧格式转换为新格式。您的 XML 甚至早于此。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我使用从 conda 安装的 Gtk3+ 和 Glade3+,按照以下步骤在 Linux 上运行。

        1. Glade3+ 用户界面中打开您在Glade1+ 用户界面中设计的Gtk1+ 旧版glade XML 文件。
        2. 点击Glade3+用户界面中的保存按钮。
        3. 打开终端以 conda 激活 gtk-builder-convert infile outfile

        祝你好运!

        【讨论】:

        • 我要转换的文件是sourceforge.net/p/gnopstree/code/ci/master/tree/gnopstree.glade。你是说你能转换这个吗?当我使用 python 3.7.4 运行 gtk-build-convert 时,它现在抱怨制表符和空格不一致:TabError: inconsistent use of tabs and spaces in indentation。如果您可以转换此文件,我将不胜感激。然而,这个项目可以追溯到 19 年前,我已经有 4 年左右没有看过这个了。
        猜你喜欢
        • 1970-01-01
        • 2012-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多