.glade datei in ein cpp projekt einbinden (Error)



  • Hallo,

    ich möchte gerne ein Fenster für ein Vorhandenes Programm programmieren.
    Habe mich da für GTK+ entschieden und wollte das Fenster mit Glade erstellen.

    Solange ich ein recht kleines Fenster habe ist das alles ganz Problemlos jedoch sobald ich ein "Grid" in mein Fenster einfüge bekomme ich einige ERROR:
    ----------------------------------------------------------------------------
    (gtk.exe:6856): Gtk-WARNING **: Unkonw property: GtkBox.orientation

    (gtk.exe:6856): GLib-GObject-WARNING **: g-object_set_property: assertion `G_IS_OBJECT (object)´ failed

    (gtk.exe:6856): GLib-GObject-WARNING **: g-object_set_property: assertion `G_IS_OBJECT (object)´ failed

    (gtk.exe:6856): GLib-GObject-WARNING **: g-object_set_data_full: assertion `G_IS_OBJECT (object)´ failed
    **
    ** Gtk:ERROR:(../../../gtk+/gtk/gtkbuilder.c:547):_gtk_builder_add: assertion failed: (GTK_IS_BUILDABLE (parent))

    This application has requested the Runtime to terminate it is a unusual way. Pleas cotact the application´s support team for more information.
    -----------------------------------------------------------------------------



  • <?xml version="1.0" encoding="UTF-8"?>
    <interface>
    <!-- interface-requires gtk+ 3.0 -->
    <object class="GtkWindow" id="window1">
    <property name="can_focus">False</property>
    <property name="default_width">800</property>
    <property name="default_height">600</property>
    <property name="icon">logo.png</property>
    <property name="icon_name">Logger</property>
    <child>
    <object class="GtkNotebook" id="notebook1">
    <property name="visible">True</property>
    <property name="can_focus">True</property>
    <child>
    <object class="GtkButton" id="button1">
    <property name="label" translatable="yes">button</property>
    <property name="visible">True</property>
    <property name="can_focus">True</property>
    <property name="receives_default">True</property>
    </object>
    </child>
    <child type="tab">
    <object class="GtkLabel" id="Start_page">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="label" translatable="yes">Start</property>
    <property name="width_chars">20</property>
    </object>
    <packing>
    <property name="tab_fill">False</property>
    </packing>
    </child>
    <child>
    <object class="GtkBox" id="box1">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="orientation">vertical</property>
    <child>
    <object class="GtkButton" id="button3">
    <property name="label" translatable="yes">button</property>
    <property name="visible">True</property>
    <property name="can_focus">True</property>
    <property name="receives_default">True</property>
    </object>
    <packing>
    <property name="expand">False</property>
    <property name="fill">True</property>
    <property name="position">0</property>
    </packing>
    </child>
    <child>
    <object class="GtkButton" id="button4">
    <property name="label" translatable="yes">button</property>
    <property name="visible">True</property>
    <property name="can_focus">True</property>
    <property name="receives_default">True</property>
    </object>
    <packing>
    <property name="expand">False</property>
    <property name="fill">True</property>
    <property name="position">1</property>
    </packing>
    </child>
    <child>
    <placeholder/>
    </child>
    <child>
    <placeholder/>
    </child>
    <child>
    <placeholder/>
    </child>
    <child>
    <placeholder/>
    </child>
    </object>
    <packing>
    <property name="position">1</property>
    </packing>
    </child>
    <child type="tab">
    <object class="GtkLabel" id="Werkzeug_page">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="xalign">0.4699999988079071</property>
    <property name="label" translatable="yes">Werkzeug</property>
    <property name="width_chars">19</property>
    </object>
    <packing>
    <property name="position">1</property>
    <property name="tab_fill">False</property>
    </packing>
    </child>
    <child>
    <object class="GtkButton" id="button2">
    <property name="label" translatable="yes">button</property>
    <property name="visible">True</property>
    <property name="can_focus">True</property>
    <property name="receives_default">True</property>
    </object>
    <packing>
    <property name="position">2</property>
    </packing>
    </child>
    <child type="tab">
    <object class="GtkLabel" id="Einstellungen_page">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="label" translatable="yes">Einstellungen</property>
    <property name="width_chars">19</property>
    </object>
    <packing>
    <property name="position">2</property>
    <property name="tab_fill">False</property>
    </packing>
    </child>
    </object>
    </child>
    </object>
    </interface>



  • int main(int argc, char* argv[])
    {
    gtk_init(&argc, &argv);

    GtkBuilder *gtkBuilder;
    GtkWidget *window;

    gtkBuilder = gtk_builder_new();
    gtk_builder_add_from_file(gtkBuilder, "visu.glade", NULL);

    window = GTK_WIDGET(gtk_builder_get_object(gtkBuilder, "window1"));

    gtk_builder_connect_signals(gtkBuilder, NULL);

    g_object_unref(G_OBJECT(gtkBuilder));

    gtk_widget_show_all(window);

    gtk_main();

    return 0;
    }



  • Kann mir da jemand weiterhelfen und mir sagen wo mein Fehler liegt ?



  • Evil_M schrieb:

    Kann mir da jemand weiterhelfen und mir sagen wo mein Fehler liegt ?

    Du bist nicht in der Lage, das passende Forum zu wählen.



  • Dieser Thread wurde von Moderator/in Arcoth aus dem Forum C++ (alle ISO-Standards) in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Evil_M schrieb:

    Hallo,

    ich möchte gerne ein Fenster für ein Vorhandenes Programm programmieren.
    Habe mich da für GTK+ entschieden und wollte das Fenster mit Glade erstellen.

    Solange ich ein recht kleines Fenster habe ist das alles ganz Problemlos jedoch sobald ich ein "Grid" in mein Fenster einfüge bekomme ich einige ERROR:
    ----------------------------------------------------------------------------
    (gtk.exe:6856): Gtk-WARNING **: Unkonw property: GtkBox.orientation

    (gtk.exe:6856): GLib-GObject-WARNING **: g-object_set_property: assertion `G_IS_OBJECT (object)´ failed

    (gtk.exe:6856): GLib-GObject-WARNING **: g-object_set_property: assertion `G_IS_OBJECT (object)´ failed

    (gtk.exe:6856): GLib-GObject-WARNING **: g-object_set_data_full: assertion `G_IS_OBJECT (object)´ failed
    **
    ** Gtk:ERROR:(../../../gtk+/gtk/gtkbuilder.c:547):_gtk_builder_add: assertion failed: (GTK_IS_BUILDABLE (parent))

    This application has requested the Runtime to terminate it is a unusual way. Pleas cotact the application´s support team for more information.
    -----------------------------------------------------------------------------

    Zunächst einmal: Die Fehlermeldung ist ja eindeutig - GTK+ kann mit Deinem Glade-File nix anfangen 😉
    Das zweite wäre: Erstellst Du das Glade-File manuell?
    Das dritte: Wenn Du Glade-XML selber "reinklopfen" möchtest, ist das ja ok - wenn Du aber am Anfang bist, lass es Dir doch vom Glade-Designer generieren und klicke Deine Fensterkomponenten zusammen....

    https://glade.gnome.org/

    Das vierte wäre: Ist Dein GTK+ Environment korrekt?

    Ich habe Deine Spurcepostings jetzt nicht wirklich getestet - aber hinter den 4 Punkten sollte die Lösung sein



  • vielen herzlichen Dank an dich für deine überaus hervorragenden und hilfreichen Kommentare !

    Ich will dich mal aus einem anderen Beitrag Zitieren :

    Ausschnitt:
    "
    manni66
    Unregistrierter

    Beitrag 11:20:30 16.09.2015 Titel: Zitieren
    Die Fragen könnte man jetzt einfach mit 2 mal JA beantworten oder auch einen Roman dazu schreiben. Ich versuche mal was dazwischen 😉

    1. falsches Forum, die Frage hat nichts mit C++ an sich zu tun

    2. Windows Forms ist AFAIK out, der Nachfolger ist Windows Presentation Foundation. Keine Ahnung, ob das auch schon wieder von etwas neuem abgelöst wurde.

    3. Wenn du nicht nur etwas für Windows machen möchtest, bieten sich Bibliotheken an, die auf verschiedenen Betriebssystemen laufen: Qt, GNOME, wxWidgets, KDE ...

    4. Wie du das ganze zusammenbaust, ist natürlich eine Frage des Programmdesigns. Grundsätzlich bietet es sich an, die eigentliche Logik von dem Teil zu trennen, der mit dem Benutzer spricht. Das kann z.B. in Form von DLLs geschehen. Dann kann man den Logikteil mal mit GUI und mal mit Kommandozeile betreiben.

    "
    AusschnittENDE;

    In diesem Ausschnitt hast du es geschafft ein wenig über das eigentliche Thema zu sprechen jedoch ist eindeutig deine nette Art zu erkennen.

    Ich weiß nicht was mit dir los ist ob du einfach nur zu wenig zu tuen hast oder einfach nur Spaß daran hast Menschen irgendwelche Patzige Antworten an den Kopf zu schmeißen. Aber ich denke mann könnte sowas sicher in den Griff bekommen.

    Du kannst mich jetzt gerne Irgendwie mit dem Satzbau oder der Rechtschreibung zitieren oder irgendeiner Unkorrektheit der Definition jedoch denke ich wird meine Botschaft an dich doch angekommen sein.

    Mein Appell an dich:

    Bitte nur einen Kommentar hinterlassen mit ernsthaften Ziel eines hilfreichen Beitrags.

    Vielen Dank !



  • Erstmal danke an absdefg!

    habe mir deine Punkte angeschaut jedoch habe ich das bereits alles mit dem GLADE-Builder gemacht und an den anderen Punkten lag es auch nicht.

    Der FEHLER:

    Ich habe hier eine GTK 2.12 Version eingebunden und die Version von Glade war
    http://ftp.gnome.org/pub/GNOME/binaries/win32/glade/
    die 3.14

    jedoch funktioniert das ganze so nicht!

    Lösung:

    ebenfalls auf dem Link die Version 3.8 Herunterladen das ist die letzte Version die noch mit GTK 2.XX noch reibungslos funktioniert.
    (GTK 3.XX für Windows habe ich nicht ausprobiert da ich in Foren gelesen habe es funktioniert nicht so pralle)

    Habt Ihr dann die GLADE 3.8 Version Installiert müsst ihr nur noch in den Einstellungen die Datei auch als XYZ.glade mit V 2.12 (in meinem Fall) speichern...

    und siehe da es Funktioniert.
    🙂 🙂 🙂 🙂 🙂


Log in to reply