第一次调用
gtk_main();
窗口的大小由网格的总大小设置。
但在第二次调用时,它不更新。
复制代码
int main(int argc, char **argv) {
GtkWidget *mainWidget, *grid, *calculate;
gtk_init(&argc, &argv);
mainWidget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
grid = gtk_grid_new();
gtk_container_add(GTK_CONTAINER(mainWidget), grid);
int i;
static GtkWidget *a[10];
for (i = 0; i != 10; i++) {
char str[1];
a[i] = gtk_button_new_with_label(str);
gtk_grid_attach(GTK_GRID(grid), a[i], 1, i, 1, 1);
g_signal_connect(a[i], "clicked", G_CALLBACK(gtk_main_quit), NULL);
}
gtk_window_set_decorated(mainWidget, FALSE);
gtk_widget_show_all(mainWidget);
gtk_main();
for (i = 0; i != 9; i++) {
gtk_container_remove(GTK_GRID(grid), a[i]);
}
gtk_widget_show_all(mainWidget);
gtk_main();
return 0;
}
。我试图使用GDB来找到计算第一次调用时窗口大小的函数,但我遇到了一些麻烦。
所以,事实证明,与其他工具包不同。不命名名称(QT,大多数Web浏览器),您(默认情况下)不能将GTK窗口缩小到其内容以下。因此,这个问题的一个实际解决方案是。
gtk_window_resize(mainWidget, 1, 1)