如何在QTabWidget中设置可移动选项卡的样式

时间:2013-11-17 03:39:24

标签: python qt pyqt qtstylesheets

我为QTabWidget完成了大部分样式设计。我的标签可以移动和关闭。出于某种原因,当我尝试移动它们时,标签不会呈现。

QTabWidget Before

这是我尝试移动其中一个之后的样子:

QTabWidget After

如您所见,标签完全消失。我在qss中遗漏了什么吗?这是我正在使用的样式表。

* {
    background-color: #3f4543;
    color: white;
    font-size: 12pt;
    margin: 0px;
    border: none;
}

QTabWidget::pane {
    border-top: 3px solid #535a57;
}

QTabWidget:movable {
    background: #ff7500;
}

QTabBar::tab {
    background: #535a57;
    min-width: 8ex;
    padding: 5px 10px;
}

    QTabBar::tab:hover {
        background: #6fc2ff;
    }

    QTabBar::tab:movable {
        background: #ff7500;
    }

    QTabBar::tab:selected {
        background: #0094ff;
    }

    QTabBar::tab:!selected {
        margin-top: 5px;
    }

我不确定我是否涵盖了所有可能的状态,但我不知道::tab子控件的状态。感谢您抽出时间看这个!

2 个答案:

答案 0 :(得分:3)

想出来。事实证明,我的一些应用程序范围的样式与QTabWidget冲突。我必须取出font-sizemarginborder才能从* { }块中正确呈现条形。

答案 1 :(得分:0)

这被报告为一个错误,并已在Qt 5.6中解决。 https://bugreports.qt.io/browse/QTBUG-45173

问题是由QWidget的应用程序范围设置背景引起的:

QWidget {
  background: #afafaf;
}

不幸的是,我不知道其他没有设置的解决方法。但是,有时你需要拥有应用程序范围的QWidget背景,并且拥有隐形移动标签是一个较小的邪恶......