2017-07-07 112 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

相关问题