【问题标题】:Gtk widget minimum and maximum width/height with resizable to trueGtk小部件最小和最大宽度/高度可调整为true
【发布时间】:2017-07-07 17:22:27
【问题描述】:

我是 gtk 的新手并使用 gtkmm-3.0,我正在努力为 gtk 小部件设置最小宽度和高度。我使用了 set_size_request 方法,但是当我调整父容器的大小时,小部件仍然超过了它的最小/最大尺寸。

我的代码看起来像

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();
}   

那么,有没有办法限制小部件的最小/最大尺寸,并将其大小调整为 true。

【问题讨论】:

    标签: gtk gtkmm3


    【解决方案1】:

    不确定这是否是您想要的,但查看您的代码,set_size_request 正在 GtkPaned 内的 GtkNotebook 上被调用,所以:

    GtkPanedchilds 有两个属性,resize 和 shrink:

    每个孩子都有两个可以设置的选项,调整大小和缩小。如果 resize 是真的,那么当 GtkPaned 被调整大小时,那个孩子会 与窗格小部件一起展开或缩小。如果收缩是真的,那么 可以使该孩子小于用户的要求。 将收缩设置为 FALSE 允许应用程序设置最小大小。 如果两个孩子的 resize 都为 false,则将其视为 调整大小对两个孩子都是正确的

    如果 shrink 设置为 TRUE,则笔记本可以小于您请求的 400x300 尺寸。

    要设置这些属性,请使用 GtkPanned pack1 和 pack2 方法而不是 add1 和 add2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-08
      • 2016-03-30
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多