我想最大化我的小部件,然后使其不可调整大小。我可以最大化小部件:
gtk_window_maximize(GTK_WINDOW(window));
但是当我尝试使用以下方法使其不可调整大小时:
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
窗口失去了最大化状态;它恢复到原来的大小。
为什么?如何将 Widget 最大化并使其不可调整大小?
最佳答案
免责声明:此答案仅作为解决方法提出,并不能真正解决问题。
在点击@ptomato 的链接后,这是我得到的最接近的东西:
int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);
GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(win);
GdkScreen *screen = gtk_window_get_screen(GTK_WINDOW(win));
GdkRectangle rect;
gdk_screen_get_monitor_workarea(screen, 0, &rect);
gtk_window_move(GTK_WINDOW(win), rect.x, rect.y);
gtk_widget_set_size_request(win, rect.width, rect.height);
gtk_window_set_resizable(GTK_WINDOW(win), FALSE);
gtk_main();
return 0;
}
然而,这仍然不完美,并且在以下方面与最大化窗口不同(使用默认的 Ubuntu 14.04 主题测试):
窗口的宽度和高度比减去标题栏和启动栏的显示器尺寸稍大(几个像素)。
除了系统标题栏之外,窗口还有自己的标题栏。
您可以四处移动窗口,但如果它已最大化,则您不应该这样做。
关于无法使小部件不可调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018202/