erste versuche mit GTK+



  • Also ich fang grad an GTK+ zuverwenden gefällt mir auch recht gut.

    um die GUIs zu erstellen benutz ich Glade3 hab damit mal folgendes generiert.

    test.xml:

    <?xml version="1.0"?>
    <!--Generated with glade3 3.4.5 on Sun Nov 15 00:36:51 2009 -->
    <interface>
      <object class="GtkWindow" id="window1">
        <signal handler="on_destroy" name="destroy"/>
        <child>
          <object class="GtkHBox" id="hbox1">
            <property name="visible">True</property>
            <child>
              <object class="GtkLabel" id="label1">
                <property name="visible">True</property>
                <property name="label" translatable="yes">10+3=</property>
              </object>
            </child>
            <child>
              <object class="GtkEntry" id="entry1">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="invisible_char">&#x25CF;</property>
                <property name="xalign">1</property>
                <property name="shadow_type">GTK_SHADOW_ETCHED_OUT</property>
              </object>
              <packing>
                <property name="position">1</property>
              </packing>
            </child>
            <child>
              <object class="GtkButton" id="OK">
                <property name="visible">True</property>
                <property name="can_focus">True</property>
                <property name="receives_default">True</property>
                <property name="label" translatable="yes">Fertig!</property>
              </object>
              <packing>
                <property name="position">2</property>
              </packing>
            </child>
          </object>
        </child>
      </object>
    </interface>
    

    mein prog sieht so aus

    #include <gtk/gtk.h>
    
    G_MODULE_EXPORT void
    on_destroy(GtkObject *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, "test.xml", NULL);
        window = GTK_WIDGET (gtk_builder_get_object (builder, "window1"));
        gtk_builder_connect_signals (builder, NULL);
    
        g_object_unref (G_OBJECT (builder));
    
        gtk_widget_show (window);                
        gtk_main ();
    
        return 0;
    }
    

    Kompilieren funkt wunderbar. Die GUI erscheint auch beim starten nur funktioniert das event handling nich Fehlermeldung: Gtk-WARNING **: Could not find signal handler 'on_destroy'.

    kompiliert hab ich das ganze mitm GCC unter gentoo. Programme die ich nich mit nem xml file generiert hab lassen sich ohne probleme kompilieren starten und funktionieren auch, nur möchte ich lieber Glade3 verwenden. Wenn ich google haben die leute es immer mit G_MODULE_EXPORT gefixxt bekommen. Nur bei mir leider nicht. Hoffe ihr könnt mir helfen 🙂

    mfg tobZel



  • -export-dynamic hats gefixxt

    trotzdem thx


Anmelden zum Antworten