3

我正在创建一个 GTK 窗口,出于各种原因,我希望用户无法调整其大小。但是在窗口上调用 set_resizable 方法会导致它以 1 像素 x 1 像素的大小显示。(在下面的代码中,如果注释掉了 set-resizable 行,窗口将显示预期的大小。调用 resize 和 set-resizable 的顺序没有区别。) 还有什么需要做的吗?

这是代码...

#include <iostream>
#include "myarea.hpp"
#include <gtkmm/main.h>
#include <gtkmm/window.h>

int main(int argc, char** argv)
{
    Gtk::Main kit(argc, argv);
    Gtk::Window win;
    win.set_title("DrawingArea");
    win.resize (600, 600);
    //win.set_resizable (false);

    MyArea area;
    win.add(area);
    area.show();

    Gtk::Main::run(win);

    return 0;
}
4

2 回答 2

11

使用win.set_size_request(600, 600);而不是resize. 我不是 100% 确定为什么你的方式不起作用,但我认为这会set_resizable(false)消除resize导致窗口恢复为其默认大小请求的影响,该请求尽可能小。

于 2010-08-27T08:53:27.433 回答
1

Gtk::Window::set_default_size()也可能有用

于 2010-08-27T15:10:08.037 回答