我正在创建一个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;
}
答案 0 :(得分:10)
使用win.set_size_request(600, 600);
代替resize
。我不是100%确定为什么你的方式不起作用,但我认为set_resizable(false)
撤消resize
导致窗口恢复其默认大小请求的影响,该请求尽可能小
答案 1 :(得分:1)
Gtk::Window::set_default_size()
也可能有用