QTabView 隐藏选项卡内容但不隐藏选项卡栏

Posted

技术标签:

【中文标题】QTabView 隐藏选项卡内容但不隐藏选项卡栏【英文标题】:QTabView hide tab content but not tabbar 【发布时间】:2021-05-21 23:45:04 【问题描述】:

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

当我使用下面的代码设置小部件可见性时,小部件会消失,但标签小部件不会调整大小。

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

我只剩下一个空白框和一个边框,但窗口中没有任何东西调整大小

我希望仍然可见的选项卡小部件展开以占据整个窗口,但其他选项卡小部件的栏仍然可见。

可以只隐藏标签栏。有什么方法可以隐藏标签内容并让栏保持可见?

【问题讨论】:

您能否展示一张您想要更好地了解自己的图片? 我添加了一张额外的图片和更多关于我想要实现的目标的详细信息。 【参考方案1】:

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

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

你仍然希望标签显示,所以用一个空的小部件交换它们,这样 QTabWidget 内容的计算高度为 0。

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

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

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 上测试。

【讨论】:

1.标签栏中仍有一些小部件仍然需要,所以我认为虚拟小部件不会起作用。 2. 我刚刚尝试在布局中隐藏选项卡的“内部”小部件。它隐藏起来,一切都按预期重新调整大小。似乎它本身的标签小部件是问题所在。 3.我会尝试最大高度并回复您。 3 工作,将最大高度设置为标签栏高度以隐藏,然后将其重置为允许的最大尺寸以显示它并让布局管理器正确调整所有内容。

以上是关于QTabView 隐藏选项卡内容但不隐藏选项卡栏的主要内容,如果未能解决你的问题,请参考以下文章

如何快速隐藏嵌入在导航堆栈中的视图控制器中的选项卡栏?

在主对象选择之前隐藏底部标签栏

在选项卡更改时隐藏手风琴

当我单击“AboSee”选项卡时,它会打开选​​项卡,但不显示选项卡栏

在材质 UI 中动态更改选项卡内容

将 UIViewController 推送到导航堆栈时如何显示选项卡栏