1

見出しを上に、[次へ] ボタンを右下に配置します。しかし、私はこれを行うことができません。次に表示されているのは中央右で、見出しは下の少し上にあります。そして、次のボタンで別のウィンドウに移動したいので、ここで を呼び出していgtk_main_quit()ます。私のコードは次のとおりです。

#include <gtk/gtk.h>

int main (int argc, char *argv[])
{

        GtkWidget *window;
        GtkWidget *next;

        GtkWidget *align;
        GtkWidget *label;
        GtkWidget *vbox;
        GtkWidget *hbox;
        GtkWidget *halign;
        GtkWidget *valign;


        gtk_init (&argc, &argv);

        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(window), "Center");//title position
        gtk_window_set_default_size(GTK_WINDOW(window),600,500);//size
        gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);//position
        vbox = gtk_vbox_new(FALSE, 5);

        valign = gtk_alignment_new(0, 1, 0, 0);
        gtk_container_add(GTK_CONTAINER(vbox), valign);
        gtk_container_add(GTK_CONTAINER(window), vbox);

        hbox = gtk_hbox_new(FALSE, 3);

        next = gtk_button_new_with_label("Next");
        gtk_widget_set_size_request(next, 70, 30);
        gtk_container_add(GTK_CONTAINER(hbox), next);
        halign = gtk_alignment_new(1, 0, 0, 0);
        gtk_container_add(GTK_CONTAINER(halign), hbox);
        align = gtk_alignment_new(0, 0, 1, 0);

        gtk_box_pack_start(GTK_BOX(vbox), halign, FALSE, FALSE, 0);

    g_signal_connect(G_OBJECT(next), "clicked",
                        G_CALLBACK(gtk_main_quit), G_OBJECT(window));
        label = gtk_label_new("No. of projects are:\n");

        gtk_container_add(GTK_CONTAINER(vbox), label);

        gtk_widget_show_all(window);

        g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);


        gtk_main ();

        return 0;
}
4

1 に答える 1

1

要素を上から下に追加するvboxため、ラベルを上に表示する場合は、行を移動する必要があります。

    label = gtk_label_new("No. of projects are:\n");  
    gtk_container_add(GTK_CONTAINER(vbox), label);

そのため、 label は、初期化した直後に に追加される最初のオブジェクトになります。vboxすると「次へ」ボタンも右下隅に移動します。

GTK+ 2.0 チュートリアルには、これに関する章があります: Packing Widgets

于 2012-07-15T13:08:42.493 に答える