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

时间:2015-06-26 13:05:39

标签: gtk3 glade

old project我写的大约2000年我有一个glade file我想转换成林间空格现在可以阅读的内容,我将在PyGtk中使用。我已经搜索了类似问题的SO,并查看代码更改的内容,但我现在只对转换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>

连连呢?

3 个答案:

答案 0 :(得分:2)

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

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

最后一次更改UI定义的XML格式是2007年,引入了GtkBuilder,但格式很大程度上基于Glade XML for GTK + 2.0,以至于简单的机械脚本像gtk-builder-convert一样可以将旧格式转换为新格式。你的XML甚至比它早。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

按照以下步骤,它可以使用从conda安装的Gtk3 +和Glade3 +在Linux上为我工作。

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

祝你好运!