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;

但是所有选项卡的宽度都相同,我不得不浪费大量的屏幕空间。

欢迎任何提示。谢谢!

4

1 回答 1

2

我发现了解决方案。

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

完全省略 width: line。显然width:auto与将其放在 qss 中不一样。

于 2014-08-14T21:44:53.487 回答