GTK+ Fragen



  • hab ich aber bleibt immer noch in der mitte, es tut sich dabei nichts.



  • mach mal folgendes:

    txt_headline = gtk_label_new("blah\n bla \n bal");

    mit zeilenumbruch müsste es gehen.



  • Ja das funktioniert zwar einerseits schon, der Text wird linksbündig ausgerichtet.
    Aber....das ganz wird in der mitte zentriert.

    Das Fenster ist 500x400 pixel groß.
    Der Container steht auf 10pixel bei "border_width".

    Der TExt steht also in der Mitte von dem Fenster, wie bekomm ich den denn dann aber ganz links ans Fenster?



  • stell mal die border um
    gtk_container_set_border_width(GTK_CONTAINER(fenster),0);

    ich weiß nicht genau, was du suchst.. aber ich denke, das.



  • Nein, habe leider kein webspace frei sonst hätt ich dir gerne ein screeny zeigen können. Ich versuche es mal so:

    ................................................
    .[.]                                  [_][ ][X].
    ................................................
    .                                              .
    .            Text ist                          .
    .            linksbündig                       .
    .            ausgerichtet                      .
    .            aber dennoch in der Mitte         .
    .                                              .
    .                                              .
    ................................................
    


  • einnmal rechts, einmal links...

    ich geb zu, rechts will es nicht ganz an den rand, nur fast...

    #include <gtk/gtk.h>
    
    void ende_cb(GtkObject *object)
    {
     gtk_main_quit();
    }
    
    int main(int argc, char **argv)
    {
     GtkWidget *fenster;
     GtkWidget *box, *box2;
     GtkWidget *label1, *label2;
     GtkWidget *button_quit;
     GtkWidget *container;
     gchar *string;
     GtkWidget *txt_headline;
    
     gtk_init(&argc, &argv);
     fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     button_quit  = gtk_button_new_with_label("Ende");
     box = gtk_vbox_new(TRUE,0);
     label1 = gtk_label_new("Hallo Welt links, testi\ntesti von etwas\n"
     "testi");
     gtk_label_set_justify(GTK_LABEL(label1),GTK_JUSTIFY_LEFT);
    
     label2 = gtk_label_new("Hallo Welt rechts, testi\ntesti von etwas\n"
     "testi");
     gtk_label_set_justify(GTK_LABEL(label2),GTK_JUSTIFY_RIGHT);
    
     gtk_signal_connect_object(GTK_OBJECT(button_quit), "clicked",
                               GTK_SIGNAL_FUNC(ende_cb), GTK_OBJECT(fenster));
     gtk_signal_connect(GTK_OBJECT(fenster), "destroy",
                        GTK_SIGNAL_FUNC(ende_cb), NULL);
    
     gtk_window_set_position(GTK_WINDOW(fenster),GTK_WIN_POS_CENTER);
    
     gtk_container_set_border_width(GTK_CONTAINER(fenster),0);
     gtk_box_pack_start(GTK_BOX(box), label1, FALSE, FALSE, 0);
     gtk_box_pack_start(GTK_BOX(box), label2, FALSE, FALSE, 0);
     gtk_box_pack_start(GTK_BOX(box), button_quit, FALSE, FALSE, 0);
     gtk_container_add(GTK_CONTAINER(fenster),box);
     gtk_widget_show_all(fenster);
     gtk_main();
    
     return 0;
    }
    

    nur testing, ohne genauer zu beleuchten.



  • Ja genau, jetz füge mal unter:

    fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    die Zeile ein:

    gtk_window_set_default_size(GTK_WINDOW(fenster), 500, 500);

    Dann weist du was ich meine. 🙂



  • *bastel*

    hab ein alignement zwischengesetzt

    int main(int argc, char **argv)
    {
     GtkWidget *fenster;
     GtkWidget *box, *box2;
     GtkWidget *label1, *label2;
     GtkWidget *button_quit;
     GtkWidget *container;
     gchar *string;
     GtkWidget *txt_headline;
     GtkAdjustment *adj;
    
     gtk_init(&argc, &argv);
     fenster = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     gtk_window_set_default_size(GTK_WINDOW(fenster), 500, 500); 
    
     button_quit  = gtk_button_new_with_label("Ende");
     box = gtk_vbox_new(FALSE,0);
    
     gtk_container_add(GTK_CONTAINER(fenster),box);
     label1 = gtk_label_new("Hallo Welt links, testi\ntesti von etwas\n"
     "testi");
     gtk_label_set_justify(GTK_LABEL(label1),GTK_JUSTIFY_LEFT);
    
     label2 = gtk_label_new("Hallo Welt rechts, testi\ntesti von etwas\n"
     "testi");
     gtk_label_set_justify(GTK_LABEL(label2),GTK_JUSTIFY_RIGHT);
    
    	gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5);//<--
    
     gtk_signal_connect_object(GTK_OBJECT(button_quit), "clicked",
                               GTK_SIGNAL_FUNC(ende_cb), GTK_OBJECT(fenster));
     gtk_signal_connect(GTK_OBJECT(fenster), "destroy",
                        GTK_SIGNAL_FUNC(ende_cb), NULL);
    
     gtk_window_set_position(GTK_WINDOW(fenster),GTK_WIN_POS_CENTER);
    
     gtk_container_set_border_width(GTK_CONTAINER(fenster),0);
     gtk_box_pack_start(GTK_BOX(box), label1, TRUE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(box), label2, TRUE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(box), button_quit, FALSE, FALSE, 0);
    
     gtk_widget_show_all(fenster);
     gtk_main();
    
     return 0;
    }
    


  • elise....viielen dank 🙂

    nun bleiben da bei mir aber noch 2 fragen übrig:
    - wie füge ich ei bild ein
    - wie verändere/bestimme ich die größe eine buttons, einer textbox



  • fürs image gibt es hier ein beispiel
    http://docs.linux.cz/gtk/gtkimage.html


Anmelden zum Antworten