将.Glade(或xml)文件转换为C源的工具

我正在寻找可以将.Glade(或xml)文件转换为C源代码的工具。
我已经尝试过g2c(Glade To C翻译器),但我正在寻找Windows二进制文件。

任何人都知道窗口的好工具。

谢谢,
PP。

glade2适合我。 但如果你使用新的glade3功能,它不会帮助你..

你不需要一个工具。 只需用你最喜欢的脚本语言编写一个脚本,将你的glade文件格式化为C字符串:

例如,我们把它glade_file.c

 const gchar *my_glade_file = "<interface>" "<object class=\"GtkDialog\">" "<et-cetera />" "</object>" "</interface>"; 

编译glade_file.c到你的程序中,然后在你建立你的界面的时候这样做:

 extern const gchar *my_glade_file; result = gtk_builder_add_from_string(builder, my_glade_file, -1, &error); 

我不得不写一个小python脚本来做到这一点,希望这有助于其他人:

 import xml.dom.minidom class XmlWriter: def __init__(self): self.snippets = [] def write(self, data): if data.isspace(): return self.snippets.append(data) def __str__(self): return ''.join(self.snippets) if __name__ == "__main__": writer = XmlWriter() xml = xml.dom.minidom.parse("example.glade") xml.writexml(writer) strippedXml = ("%s" % (writer)).replace('"', '\\"') byteCount = len(strippedXml) baseOffset=0 stripSize=64 output = open("example.h", 'w') output.write("static const char gladestring [] = \n{\n") while baseOffset < byteCount: skipTrailingQuote = 0 if baseOffset+stripSize < byteCount and strippedXml[baseOffset+stripSize] == '"': skipTrailingQuote = 1 output.write(' "%s"\n' % (strippedXml[baseOffset:baseOffset+stripSize+skipTrailingQuote])) baseOffset += stripSize + skipTrailingQuote output.write("};\n") output.close()