QLayout 可以隐藏而不是调整 QWidget 的大小吗?

Dav*_*ham 5 layout qt

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

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

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

Wes*_*Wes 0

看看 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 ) ) );
Run Code Online (Sandbox Code Playgroud)