2010-08-27 157 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()也可能有用