GTK TABLE



  • Hallo

    ich habe folgendet erstellt:

    http://dominik.bmf-server.com/logo.png

    warum ist zwischen den bilder noch ein abstand habe doch cellspacing auf 0 etc:

    #include <gtk/gtk.h>
    #define NBOOK 3
    #define BUF 35
    #define IMG 7
    static gint
    delete_Event(GtkWidget *widget, GdkEvent event, gpointer daten) {
      g_print("Das Fenster wird zerstoert!\n");
      return FALSE;
    }
    static void end ( GtkWidget *widget, gpointer daten ) {
      g_print("Und tschuess!\n");
      gtk_main_quit();
    }
    int main(int argc, char **argv) {
      GtkWindow  *win;
    
      GtkImage   *image[IMG];
      GtkTable   *mitte;
        GtkTable   *oben;
          GtkTable   *alle;
              GtkTable   *unten;
      GtkNotebook *nbook;
      GtkLabel    *nbook_content[NBOOK],*nbook_titel[NBOOK];
    
    GtkDrawingArea * draw;
      guint i;
      gchar buf[BUF];
      gtk_init( &argc, &argv );
    
    image[0] = GTK_IMAGE(g_object_new( GTK_TYPE_IMAGE,
                            "file", "images/obenLinks.jpg",
                            NULL));
    image[1] = GTK_IMAGE(g_object_new( GTK_TYPE_IMAGE,
                            "file", "images/oben mitte.jpg",
                            NULL));
    image[2] = GTK_IMAGE(g_object_new( GTK_TYPE_IMAGE,
                            "file", "images/mitte links.jpg",
                            NULL));
    image[3] = GTK_IMAGE(g_object_new( GTK_TYPE_IMAGE,
                            "file", "images/mitte rechts.jpg",
                            NULL));
    image[4] = GTK_IMAGE(g_object_new( GTK_TYPE_IMAGE,
                            "file", "images/oben Rechts.jpg",
                            NULL));
                            image[5] = GTK_IMAGE(g_object_new( GTK_TYPE_IMAGE,
                            "file", "images/unten mitte.jpg",
                            NULL));
                                image[6] = GTK_IMAGE(g_object_new( GTK_TYPE_IMAGE,
                            "file", "images/untenlinks.gif",
                            NULL));
                                image[7] = GTK_IMAGE(g_object_new( GTK_TYPE_IMAGE,
                            "file", "images/unten rechts.jpg",
                            NULL));
    
      win = GTK_WINDOW(g_object_new( GTK_TYPE_WINDOW,
                          "title", "Lynax Messenger",
    
                          "window-position", GTK_WIN_POS_CENTER,
                          NULL ));
    
    gtk_window_set_decorated        (win,      FALSE);
    
    unten = GTK_TABLE(g_object_new( GTK_TYPE_TABLE,
                            "n-columns", 3,
                            "n-rows", 1,
                            "column-spacing",0,
    "row-spacing",0,
                            NULL));
    oben = GTK_TABLE(g_object_new( GTK_TYPE_TABLE,
                            "n-columns", 3,
                            "n-rows", 1,
                            "column-spacing",0,
    "row-spacing",0,
                            NULL));
    
    mitte = GTK_TABLE(g_object_new( GTK_TYPE_TABLE,
                            "n-columns", 3,
                            "n-rows", 1,
    "column-spacing",0,
    "row-spacing",0,
                            NULL));
    alle = GTK_TABLE(g_object_new( GTK_TYPE_TABLE,
                            "n-columns", 1,
                            "n-rows", 2,
                            "column-spacing",0,
                            "row-spacing",0,
    
                            NULL));
    
      nbook = GTK_NOTEBOOK(g_object_new( GTK_TYPE_NOTEBOOK,
                            "enable-popup", TRUE,
                            NULL ));
    
      for(i=0; i < NBOOK; i++) {
          if(i==0)
          {
    g_snprintf(buf,BUF,"Seote 2");
    
              }
    else  if(i==1)
          {
             g_snprintf(buf,BUF,"Seote 2",i+1);
              }
              else
          {
             g_snprintf(buf,BUF,"Seote 3",i+1);
              }
    
                nbook_content[i] = GTK_LABEL(g_object_new( GTK_TYPE_LABEL,
                                         "label", buf,
                                         NULL));
        g_snprintf(buf,BUF,"Seite %d",i+1);
        nbook_titel[i]   = GTK_LABEL(g_object_new( GTK_TYPE_LABEL,
                                         "label", buf,
                                         NULL ));
        gtk_notebook_append_page_menu(nbook,
                                      GTK_WIDGET(nbook_content[i]),
                                      GTK_WIDGET(nbook_titel[i]),
                                      NULL);
      }
    
      g_signal_connect( win, "delete-event",
                        G_CALLBACK(delete_Event), NULL );
      g_signal_connect( win, "destroy",
                        G_CALLBACK(end), NULL );
    
    gtk_table_attach_defaults(GTK_TABLE(alle),GTK_WIDGET (oben), 1,2, 0,1);
    gtk_table_attach_defaults(GTK_TABLE(alle),GTK_WIDGET (mitte), 1,2, 1,2);
    gtk_table_attach_defaults(GTK_TABLE(alle),GTK_WIDGET (unten), 1,2, 2,3);
    
    gtk_table_attach_defaults(GTK_TABLE(mitte),GTK_WIDGET (nbook), 1,2, 1,2);
    gtk_table_attach_defaults(GTK_TABLE(mitte),GTK_WIDGET (image[2]), 0,1, 1,2);
    gtk_table_attach_defaults(GTK_TABLE(mitte),GTK_WIDGET (image[3]), 2,3, 1,2);
    
    gtk_table_attach_defaults(GTK_TABLE(unten),GTK_WIDGET (image[6]), 0,1, 0,1);
    gtk_table_attach_defaults(GTK_TABLE(unten),GTK_WIDGET (image[5]), 1,2, 0,1);
    gtk_table_attach_defaults(GTK_TABLE(unten),GTK_WIDGET (image[7]), 2,3, 0,1);
    
    gtk_table_attach_defaults(GTK_TABLE(oben),GTK_WIDGET (image[0]), 0,1, 0,1);
    gtk_table_attach_defaults(GTK_TABLE(oben),GTK_WIDGET (image[1]), 1,2, 0,1);
    gtk_table_attach_defaults(GTK_TABLE(oben),GTK_WIDGET (image[4]), 2,3, 0,1);
    
    gtk_container_add(GTK_CONTAINER(win), GTK_WIDGET(alle));
    
    gtk_widget_show_all( GTK_WIDGET(win) );
    
      gtk_main();
      g_print("Die GTK-Hauptschleife wurde beendet\n");
      return 0;
    }
    


  • Hi,

    sind die merkwürdigen schwarzen Formen deine "Bilder"? Wenn ja, was wolltest du bezwecken? Sehe ich das richtig, dass du für jedes der jpgs einen eigenen GtkTable verwendet hast?

    Ich steig noch nicht so ganz durch 😕
    Brauche mehr Infos...

    Grüße

    GPC



  • danke für die antwort:

    nein nein ich hab 4 tabellen,

    die tabelle alle umschließt die anderen 3

    die tabelle oben beinhaltet die drei bilder oben
    die tabelle mitte beinhalter die 2 bilder in der mitte und das notbook
    die tabelle unten beinhaltet die 3 bilder unten also die 2 ecken und die gerade

    aber ich muss den abstand von der tabelle 2 zur 3 zb wegbekommen.... und 1 zu 3 da ist irgent ein 2 px abstand oder so



  • meinen eigenen rahmen, ja die formen sol der rahmen werden...



  • update:

    http://dominik.bmf-server.com/logo.png

    wie bekomm ich die etz optimal aneinandere gereihte wie es links schon bei 2en ist?



  • rechts mein ich;)



  • hat sich erledigt totzdem danke für deine mühe



  • Hallo Dominik,

    jo, in solchen Fällen helf ich gerne^^

    MfG

    GPC



  • wisst ihr zufällig wo man die gtk/gtk.h herkriegt?



  • Wie? Wo man die herkriegt?
    Wenn man sich GTK+ installiert, ist die immer dabei. Liegt im gtk Verzeichnis rum.


Log in to reply