私は Gtk+ のチュートリアルとリファレンスにつまずき、適切なレイアウトを作成する方法を理解しようとしています。ドキュメントには、非推奨のBox/HBox/VBoxGtkGrid
の代わりに使用する必要があると書かれていますが、 をフル ウィンドウ サイズに拡張するのに問題があります。を使用してもまったく影響はありません。GtkGrid
gtk_widget_set_hexpand
GtkGrid
この回答は「プロパティ を見る」ことを示唆していますが、このプロパティが実際に何であるか、どのようexpand
に設定するかについての情報を見つけることができません(プロパティごとに常にゲッター/セッターのペアがあると仮定しましたが、この場合はありません)関数)。gtk_widget_set_expand
私は何が欠けていますか?
アップデート:
expand プロパティの設定はまだ機能しません。ボタンはウィンドウの左上隅に「固定」されます。コードは次のとおりです。
static void initializeGui() {
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Blabla");
gtk_window_set_default_size(GTK_WINDOW(window), 800, 500);
gtk_window_set_hide_titlebar_when_maximized(GTK_WINDOW(window), TRUE);
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
g_signal_connect(window, "delete-event", G_CALLBACK(onWindowDelete), NULL);
g_signal_connect(window, "destroy", G_CALLBACK(onWindowDestroy), NULL);
GtkWidget *mainbox = gtk_grid_new();
g_object_set(G_OBJECT(mainbox), "expand", TRUE, NULL);
GtkWidget *button = gtk_button_new_with_label("Short button");
g_signal_connect(button, "clicked", G_CALLBACK(onButtonClick), NULL);
gtk_grid_attach(GTK_GRID(mainbox), button, 0, 0, 1, 1);
button = gtk_button_new_with_label("Very very long button");
gtk_grid_attach(GTK_GRID(mainbox), button, 1, 0, 1, 1);
button = gtk_button_new_with_label("Tiny btn");
gtk_widget_set_halign(button, GTK_ALIGN_END);
gtk_grid_attach(GTK_GRID(mainbox), button, 1, 1, 1, 1);
gtk_container_add(GTK_CONTAINER(window), mainbox);
gtk_widget_show_all(window);
}