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

Bri*_*per 3 gtk gtkmm

我正在创建一个GTK窗口,由于各种原因,我希望用户不能调整大小.但是在窗口上调用set_resizable方法会导致它以1像素乘1像素的大小显示.(在下面的代码中,如果可设置可调整大小的行被注释掉,窗口会显示预期的大小.调整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;
}
Run Code Online (Sandbox Code Playgroud)

pto*_*ato 10

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