QTabView 隐藏标签内容但不隐藏标签栏

QTabView hide tab content but not tabbar

我在 window 中有 2 个 QTabWidgets,其中包含 QWidgets 和一个用于折叠控制可见性的选项卡内容的附加按钮。要么两者都可见,要么一个隐藏。

当我使用下面的代码设置小部件可见性时,小部件消失了,但选项卡小部件没有调整大小。

for(int i = 0; i < tabWidget->count(); i++) {
    tabWidget->widget(i)->setVisible(!hide);
}

我只剩下一个空白框和一个围绕边缘的框架,但 window 调整大小后没有任何内容

我想要的是仍然可见的选项卡小部件展开以占据整个 window,但另一个选项卡小部件的栏仍然可见。

可以只隐藏标签栏。有没有办法隐藏选项卡内容并使栏可见?

这里有几个选项,其中一个类似于在 QTabWidget 中隐藏选项卡。

1.用虚拟小部件替换选项卡。

您仍然希望显示选项卡,因此将它们换成一个空的小部件,这样 QTabWidget 内容的计算高度为 0。

2。隐藏选项卡小部件的内容而不是小部件本身。

您很可能在这些小部件中有布局,布局间距和边距将显示为空 space。您需要轻松计算出隐藏内容的细节。

3。设置QTabWidget的最大高度

将QTabWidget的最大高度设置为QTabWidget的QTabBar的高度。

if (hide) {
    tabWidget->setMaximumHeight(tabWidget->tabBar()->height());

} else {
    tabWidget->setMaximumHeight(QWIDGETSIZE_MAX); // Default maximum size for qWidgets
}

我没有看到在任一选项卡小部件上设置 QSizePolicy 有效果。在 Qt 5.13.1 上测试。