如何在QTabWidget中的两个选项卡之间插入空格?

时间:2013-02-03 19:09:34

标签: qt qt4 qt5 qtabwidget qtabbar

我想插入一个空格来将第二个标签与第三个标签分开。这可能吗?我尝试了一些样式表,但由于这个小部件对我来说有点新鲜,到目前为止我还没有成功。

2 个答案:

答案 0 :(得分:18)

是的,这是可能的,但不是那么明显。这是我前段时间提出的一种方式。

每当您需要在两个标签之间留出空格时,请在标签之间插入新标签,并通过调用QTabWidget::setTabEnabled(int index, bool enable)禁用新标签页。这样,新选项卡将无法再与之交互(除非选项卡是唯一存在的选项卡)。您还需要在QTabWidget上设置以下样式表:

 QTabBar::tab:disabled {
    width: 100px;
    color: transparent;
    background: transparent;
 }

此样式表使新选项卡不可见(实际上它会使所有禁用的选项卡不可见,因此除非没有,否则此方法对您无效)。您可以通过更改样式表中width的值来调整空间的宽度。

结果:

QTabWidget with space between tabs

答案 1 :(得分:0)

如果您不想像已接受的答案中那样创建不可见的选项卡,则可以使用这种方法仅使用样式表。同样,调整像素数量以在标签之间增加或减少间距。

QTabBar::tab {
    margin-left:2px;
    margin-right:2px;
}

enter image description here

QTabBar::tab {
    margin-left:40px;
    margin-right:40px;
}

enter image description here