Ошибка gtk-builder-convert

Я делаю учебник по ссылке http://www.micahcarrick.com/gtk-glade-tutorial-part-1.html

Когда я запускаю gtk- buildder-convert tutorial.glade tutorial.xml Я получаю следующую ошибку

    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.

файл glade выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<interface>
    <!-- interface-requires gtk+ 3.0 -->
    <object class="GtkWindow" id="window">
        <property name="can_focus">False</property>
        <property name="title" translatable="yes">GTK+ Text Editor</property>
        <signal name="destroy" handler="on_window_destroy" swapped="no"/>
        <child>
            <placeholder/>
        </child>
    </object>
</interface>

Примечание: файл glade был создан с использованием Glade 3.14. 0 в убунту 12.10

2
задан 22 January 2013 в 14:40

1 ответ

В прошлый раз, когда я программировал в Glade / GTK, он не требовал "gtk-builder-convert". Файл .glade, который предоставляет glade, сам по себе является XML-файлом, который вам нужен. Просто запрограммируйте свой код, как будто вы уже преобразовали файл в .xml (кстати, я использую glade 3.12.1). Как:

#include <gtk/gtk.h>

void on_window_destroy (GtkWidget *object, gpointer user_data) {
    gtk_main_quit();
}

int main (int argc, char *argv[]) {
    GtkBuilder *builder;
    GtkWidget *window;

    gtk_init (&argc, &argv);

    builder = gtk_builder_new ();
    gtk_builder_add_from_file (builder, "ui.glade", NULL);

    window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
    g_signal_connect (window, "destroy", G_CALLBACK (on_window_destroy), NULL);

    gtk_widget_show (window);       
    gtk_main ();

    return 0;
}
0
ответ дан 22 January 2013 в 14:40

Другие вопросы по тегам:

Похожие вопросы: