【问题标题】:Can a QLayout hide, rather than resize, QWidgets?QLayout 可以隐藏而不是调整 QWidgets 的大小吗?
【发布时间】:2012-02-25 10:39:21
【问题描述】:

我正在尝试实现一个由一堆子元素组成的 UI 元素。它们可以像父母一样增长或缩小。非常简单的QLayout 东西。但是,当父元素变得太小时,它会隐藏几个子元素(这意味着现在剩余元素有更多空间,它们会变得更大一些)。

我没有看到任何标准QLayouts 处理这个问题。我想您可以认为子小部件具有优先级,而低优先级的小部件被隐藏。

布局是严格水平的,所以有点类似于工具栏,只是没有办法找到隐藏的项目。 (并且子元素不是动作,就像它们在 QToolBar 中一样)。

【问题讨论】:

    标签: qt layout


    【解决方案1】:

    看看 QStackedWidget。我自己刚开始使用它们。

    它们具有在调用时显示/隐藏的“页面”。例如:

    ui.stackedWidget->setCurrentIndex( 0 );

    例如,当索引 0 显示时,页面 1,2,3... 隐藏在下面。

    我已经连接了一堆单选按钮,当单击这些单选按钮时,它们会显示相应的页面/小部件,并将其他按钮隐藏在“下方”。连接很简单:

    connect( button_group_ptr, SIGNAL( buttonClicked( int ) ), ui.stackedWidget, SLOT( setCurrentIndex( int ) ) );
    connect( ui.stackedWidget, SIGNAL( currentChanged( int ) ), this, SLOT( stackedWidgetChanged( int ) ) );
    

    【讨论】:

    • 我不认为这是一回事——隐藏小部件取决于容器的大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    相关资源
    最近更新 更多