C++ + GTK



  • Kann mir mal bitte jemand sagen was an deisem Source falsch ist... ich weis es nicht... und komme auch net mehr weiter...

    #include <gtk/gtk.h>
    
    const gchar *bilder[] = {"1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", };
    int index = 0;
    GtkWidget *bild;
    
    static void destroy (GtkWidget *widget, gpointer data)
    {
    gtk_main_quit();
    }
    
    static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data) {
    g_print("Delete Event aufgetreten \n");
    return false;
    }
    
    static void funcWeiter
    {
    index++;
    if(index == 8) {
    index = 0;
    }
    gtk_image_set_form_file (GTK_IMAGE(bild),bilder[index]);
    }
    
    int main (int argc, char *argv[] )
    {
    
    GtkWidget *window;
    GtkWidget *weiter;
    GtkWidget *layout;
    
    gtk_init (&argc, &argv);
    
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    
    bild = gtk_image_new_from_file (bilder[index]);
    
    weiter = gtk_button_new_with_label ("weiter >>");
    g_signal_connect (G_OBJEC (weiter), "clicked", G_CALLBACK (funcWeiter),NULL);
    
    layout = gtk_vbox_new (FALSE, 2);
    
    gtk_container_add (GTK_CONTAINER (window), layout);
    
    gtk_box_pack_start (GTK_BOX (layout), bild, FALSE, FALSE, 0);
    gtk_box_pack_start (GTK_BOX (layout), bild, FALSE, FALSE, 0);
    
    gtk_window_set_title(GTK_WINDOW(window), "TeRrASofT");
    
    g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL);
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL);
    
    gtk_widget_show (bild);
    gtk_widget_show (weiter);
    gtk_widget_show (layout);
    gtk_widget_show (window);
    
    gtk_main ();
    
    return 0;
    
    }
    

    THX im vorraus schonmal

    mfg. Dagobert



  • Hiho!

    Bitte poste die Fehlermeldungen, die dein Compiler ausspuckt, damit wir dir helfen koennen 🙂



  • ok dann kommen hier jetzt nochmal 100 fehler hin wenn ...^^

    na super ich kann die net mal kopiern ... ich poste die fehlermeldungen morgen aus der schule, hab da in info genug zeit für *g*



  • Die ersten 10 Zeilen sollten leicht genuegen



  • kann das sein das mein compieler meine GTK übern haufen geschossen hat?

    also ich habs mit cygwin compielert:

    g++ fenster2.cpp o- fenster2 `pkg-config gtk+-2.0 --cflags --libs` -mms-bitfields
    

    dann kamen vogelnde Fehler:

    Package gtk+-2.0 was not found in the pkg-config search path.
    Prehaps you should add the direcory containg `gtk+-2.0.pc`
    to the PKG_CONFIG_PATH environment variable
    NO package 'gtk+-2.0' found
    fenster2.cpp:1:21: gtk/gtk.h: No such file directory
    fenster2.cpp:3: error: expected init-declarator befor `*´token
    fenster2.cpp:3: error: expectd `,`or `;`befor `*`token
    fenster2.cpp:5: error: expected constructor, or type conversion before `*` token
    fenster2.cpp:5: error: expected `,` or `;` before ´*` token
    fenster2.cpp:7: error: variable or field `destroy`declared void
    fenster2.cpp:7: error: `GtkWidget` was not declared in this scope
    

    muss ich noch mehr posten oder reicht das erstmal 😕



  • was sagt denn pkg-config gtk+-2.0 --cflags --libs ?



  • die erste zeile sagt doch schonmal einiges

    Package gtk+-2.0 was not found in the pkg-config search path.

    du hast gtk+-2.0 nicht oder nicht richtig installiert...

    mfg blan



  • dann hat mein sys es abgeschossen... denn ich hab vorher auch schon sachen mit GKT kompiliert...

    naja habs neuinst... immer noch gleicher fehler...



  • was benutzt du denn, windows / linux (welche distribution?) und wie installierst du es?

    mfg blan



  • ich hab win XP Prof drauf... dafür das GTK devlop... und mache es mit cygwin... wir bei der installation automatisch mit eingebunden wenn man es ankreuzt



  • naja wenns mit pkg-config net funktioniert dann übergib die paramter die pkg-config automisch macht halt manuell?

    mfg blan



  • Weist du zufällig wie?



  • hab kein windows und deswegn kann ich dir nur die ausgabe unter linux von pkg-config sagen

    -DXTHREADS -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include
    -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 
    -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
    -Wl,--export-dynamic -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
    

    solltest halt deim kompiler die oben genannten libs / dlls übergeben und die Include-Dirs, das müste langen...

    mfg blan


Anmelden zum Antworten