如何使用width:auto;使用文本内部更改选项卡的宽度;在Qt5中的QTabBar :: tab中?

问题描述 投票:1回答:1

我有一个带有几个标签窗格的QTabBar,其中包含以下内容:

QTabBar::tab {
    background: gray;
    color: white;
    width:auto;
    height:1em;
    border:0px;
    border-top-left-radius:8px;
    border-top-right-radius:8px;
}

QTabBar::tab:selected {
    background: lightgray;
    font-weight:bold;
    color:black;
}

这看起来像这样:

您可以清楚地看到标签大小是不变的。除了自定义字体之外,没有其他样式可以影响此QTabBar。也没有特殊的代码影响它。

对我来说,这看起来很麻烦。我希望width:auto能够使标签增大以包含其中的文本。这是为了节省空间,因为有许多标签,具有固定的宽度将占用大量空间。

此外,我已经设置了一个填充,看看是否会给文本提供更多空间,如下所示:

padding: 1em;

结果如下:

文本裁剪完全相同,并将填充添加到框的外部。

我已经尝试了各种负边距,边框和填充的组合无济于事。这在Qt中不可能吗?

我可以解决这个问题:

width: 7em;

但随后所有标签宽度相同,我不得不浪费大量的屏幕空间。

欢迎任何提示。谢谢!

qt qt5 qtstylesheets qtabbar
1个回答
2
投票

我发现了解决方案。

这很简单,因为没有尽快找到它而感到尴尬。但我想这对其他人有一些价值,所以我不会删除它。

只需省略宽度:行。显然width:auto与在qss中留下它不一样。

© www.soinside.com 2019 - 2024. All rights reserved.