无法使小部件不可调整大小

标签 c gtk gtk2

我想最大化我的小部件,然后使其不可调整大小。我可以最大化小部件:

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 主题测试):

  1. 窗口的宽度和高度比减去标题栏和启动栏的显示器尺寸稍大(几个像素)。

  2. 除了系统标题栏之外,窗口还有自己的标题栏。

  3. 您可以四处移动窗口,但如果它已最大化,则您不应该这样做。

关于无法使小部件不可调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30018202/

相关文章:

c++ - sigc::mem_fun中的C++ “no match for call”错误

c - Gtk3 和 cairo 动画 twitch

linux - 禁用交互式搜索 - 用户端

php - php-gtk2 的 gnope 不见了?

c - 如何在滚动窗口布局中添加 GtkEventBox?

python - 获取当前 gtk 样式的颜色

c - 当我尝试运行它时,程序崩溃了,我不知道为什么

c - 标准 C 函数 atof 在与 strtok 一起使用时返回段错误

c - 在 fread/fwrite 循环中出现段错误,复制文件

c - 我们什么时候不应该使用#pragma pack?