2010-08-27 97 views
3

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

这里是代码...

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

回答

9

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

+0

谢谢你,ptomato。这是做的伎俩。 (在我从文档中发现之前已经有一段时间了。) – 2010-08-27 09:03:50

1

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