PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GTK2: Probleme mit box_pack_start() etc



Trillian
22-12-2002, 18:45
Hallo,
ich arbeite nun schon länger mit GTK, aber ab und zu machen mir selbst grundlegende Sachen noch Probleme. Atm geht's ums ausrichten von Labels, Buttons etc.

Vielleicht kann sich jemanden folgenden Code angucken und mir sagen, wie ich da z.b. die 2 Buttons links ausrichte und die Größe auf ein vernünftiges Maß reduzieren kann?
Ist set_size_request() da die üblicherweise benutzte Methode?



gint main(gint argc, gchar **argv)
{
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *box;
GtkWidget *frame;
GtkWidget *label;
gchar *buf;
GtkWidget *btn;
gint i;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width(GTK_CONTAINER(windo w), 5);
gtk_window_set_default_size(GTK_WINDOW(window), 640, 480);

vbox = gtk_vbox_new(FALSE, 0);

for (i = 0; i < 2; i++) {
frame = gtk_frame_new("Foo");
gtk_container_set_border_width(GTK_CONTAINER(frame ), 5);
gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, TRUE, 5);

box = gtk_vbox_new(FALSE, 5);
gtk_container_add(GTK_CONTAINER(frame), box);

buf = g_strdup_printf("Bar");
label = gtk_label_new(buf);
gtk_box_pack_start(GTK_BOX(box), label, TRUE, FALSE, 5);

btn = gtk_button_new_with_label("Button");
gtk_box_pack_start(GTK_BOX(box), btn, FALSE, FALSE, 5);
}

gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show_all(GTK_WIDGET(window));

gtk_main();

return 0;
}

tkortkamp
22-12-2002, 19:45
Du möchtest die Buttons ja horizontal ausrichten also:
Füge die Buttons einfach in eine GtkHBox, die in der GtkVBox liegt ein. Dann sind die Buttons links und auch vernünftig klein, vorausgesetzt der homogeneous-Parameter von der GtkHBox ist auf FALSE, sonst breiten sich die Buttons wieder aus... :p

c ya,
Tobias

Trillian
22-12-2002, 20:25
Funktioniert einwandfrei, auch wenn es nicht so elegant aussieht ;)

Danke dir