2017-07-07 175 views
1

我是gtkmm-3.0的新手,我在努力設置gtk小部件的最小寬度和高度。我使用了set_size_request方法,但是當我調整父容器的大小時,該小部件仍在穿越其最小/最大大小。Gtk小部件的最小和最大寬度/高度可調整爲true

我的代碼看起來像

foo::foo() 
{ 
    set_default_size(400,400); // set default size for window 
    add(grid_layout); 

    menu_bar.append(file); 
    menu_bar.append(edit); 
    menu_bar.append(project); 
    menu_bar.append(settings); 
    menu_bar.append(help); 


    right_panel_notebook.insert_page(right_btn, "Page1", Gtk::POS_RIGHT); 
    right_panel_notebook.insert_page(notebook_btn, "Page2", Gtk::POS_RIGHT); 
    right_panel_notebook.set_size_request(400,300); // setting size for a Notebook widget  


    design_paned.set_vexpand(true); 
    design_paned.add1(btn); 
    design_paned.add2(right_panel_notebook); 


    grid_layout.set_row_homogeneous(false); 
    grid_layout.set_column_homogeneous(true); 
    grid_layout.attach_next_to(menu_bar, Gtk::POS_RIGHT, 1,1);   
    grid_layout.attach_next_to(design_paned, Gtk::POS_BOTTOM, 1,1);   

    show_all(); 
} 

那麼,有沒有什麼辦法來限制widget的最小/最大,其調整大小以真實尺寸。

回答

0

不知道這是否是你想要什麼,但看你的代碼中,set_size_request正在呼籲GtkNotebook這是一個GtkPaned裏面,所以:

GtkPaned孩子的有兩個屬性,resizeshrink

每個孩子有兩個可以設置,調整大小和縮小的選項。如果 調整大小是正確的,那麼當調整GtkPaned大小時,該子節點將隨着窗格小部件一起展開或縮小。如果收縮是真的,那麼 這個孩子可以比用戶的請求小。 將shrink設置爲FALSE允許應用程序設置最小大小。 如果調整大小是兩個孩子假,那麼這將被視爲如果 調整大小是真實的

如果shrink設置爲TRUE那麼筆記本電腦可以更小的尺寸400×300,你所要求兩個孩子。

要設置這些屬性,請使用GtkPanned pack1pack2而不是add1add2

相關問題