Как предотвратить рост GtkWindow? - PullRequest
1 голос
/ 27 мая 2020

Это мои коды:

#include<gtk/gtk.h>
int main(int argc,char**argv)
{
   GtkWidget* window, *button, *grid;
   gtk_init(&argc,&argv);

   window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size(GTK_WINDOW(window),100,100);
   g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
   //gtk_container_set_border_width(GTK_CONTAINER(window),10);
   gtk_window_set_resizable(GTK_WINDOW(window), FALSE);

   grid = gtk_grid_new();
   button = gtk_button_new_with_label("1");
   gtk_grid_attach(GTK_GRID(grid), button, 0,0, 100, 1);
   gtk_grid_set_column_homogeneous(GTK_GRID(grid), TRUE);
   gtk_grid_set_row_homogeneous(GTK_GRID(grid), TRUE);

   button = gtk_button_new_with_label("1");
   gtk_grid_attach(GTK_GRID(grid), button,0, 1, 10, 1);
   gtk_container_add(GTK_CONTAINER(window), grid);
   gtk_widget_show_all(window);
   gtk_main();
   return 0;
}

результат этих кодов: gtk_grid_attach (GTK_GRID (сетка), кнопка, 0, 1, 100, 1)

Когда я меняю gtk_grid_attach (GTK_GRID (сетка), кнопка, 0, 1, 100, 1) на gtk_grid_attach (GTK_GRID (сетка), кнопка, 0, 1, 200, 1), то результатом этого кода является: gtk_grid_attach (GTK_GRID (сетка), кнопка, 0, 1, 200, 1)

Почему ширина окна увеличивается? Я считаю, что размер окна можно изменять с помощью функции gtk_grid_attach (). Так как же решить?

1 Ответ

0 голосов
/ 28 мая 2020

Почему ширина окна увеличивается?

Вы использовали

   gtk_grid_set_column_homogeneous(GTK_GRID(grid), TRUE);
   gtk_grid_set_row_homogeneous(GTK_GRID(grid), TRUE);

Это означает, что каждая ячейка в сетке будет иметь одинаковую ширину и высоту, который будет таким же, как самый большой встроенный виджет. Итак, если у вас больше ячеек, сетка будет расти дальше, и, таким образом, ширина окна увеличивается

Я считаю, что размер окна можно изменять с помощью функции gtk_grid_attach (). Итак, как это решить?

Я не знаю, какой у вас вариант использования. Но вы можете отключить однородные свойства и / или использовать реальную ширину и высоту сетки при присоединении дочерних элементов.

...