【问题标题】:Getting QTabWidget to lay flat让 QTabWidget 平放
【发布时间】:2018-10-18 15:32:08
【问题描述】:

我有一个在 QTabWidget 旁边使用 QTreeWidget 的应用程序。在包含这两个和 QTreeWidget 的框架上,我可以设置属性:

frameShape : NoFrame --and-- frameShadow : Plain

这给出了一个漂亮的平面外观。但是 QTabWidget 没有这些属性,它有一个阴影并且是凸起的。

如何让 QTabWidget 看起来很扁平?

附上图片。

【问题讨论】:

  • 标签的外观取决于 GUI 主题。默认情况下,我的系统上的选项卡已经变平了。也许您想改用 Stacked Widget 容器并将按钮放在顶部以激活选项卡?一般来说,我会尽量避免与这些东西混在一起,因为与系统外观和感觉保持一致通常会提高可用性。
  • 我真的需要使用QTabWidget;我实际上还是隐藏了标签栏,但整个容器仍然被提升..如何更改 GUI 主题?
  • 没有标签栏和没有边框的标签小部件正是 QStackedWidget 是什么?!

标签: qt qtabwidget


【解决方案1】:

您可以使用样式表来自定义边框的外观。
使用样式表通常会重置一些默认/原生样式,例如背景,因此您需要根据需要明确定义它。

QTabWidget::pane { border: none; } // No border at all
QTabWidget::pane { border: 1px solid black; } // Simple black border

请参阅examples


根据您的问题和屏幕截图,您的 QTreeWidget 实际上并不平坦,它具有inset 样式,而 QTabWidget 具有outset。目前还不是很清楚你想要实现什么。但我完全同意 cmets 中的@ypnos,您似乎需要QStackWidget 而不是QTabWidget

我也认为您应该保留原生样式,这将根据操作系统和用户偏好而改变。如果您想自定义应用程序的外观和感觉,您通常需要自定义所有应用程序并使其保持一致,而不仅仅是一个让您不满意的小部件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2016-10-07
    • 2010-10-02
    • 2012-01-22
    • 2019-12-12
    • 2016-09-14
    相关资源
    最近更新 更多