将resizable设置为false会缩小窗口到点

时间:2010-08-27 08:43:56

标签: gtk gtkmm

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

这是代码......

#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;
}

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:1)

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