使用样式表定义标签背景而不更改QWidget?

MAR*_*ien 3 qt tabs qtscript qtstylesheets

我想制作一个非常基本的GUI:标签,文本区域.

但我想为我的标签着色,让它们在MAC,Windows和Linux上看起来总是一样.

所以,我尝试使用样式表:

QTabWidget::pane
{
    border-top: 2px solid #1B1B1B;
    background-color: #262626;
}

QTabWidget::tab-bar
{
    left: 5px;
    alignment: left;
    background: #3E3E3E;
}

QTabBar::tab
{
    background: transparent;
    color: #757575;
    padding: 15px 5px 15px 5px;
}

QTabBar::tab:hover
{
    text-decoration: underline;
}

QTabBar::tab:selected
{
    color: #DEF600;
    background: qlineargradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #262626, stop: 1.0 #3D3D3D );
}
Run Code Online (Sandbox Code Playgroud)

但即使选项卡看起来很好,也存在一个问题:选项卡窗格仍然是透明的......

我可以通过添加以下强制背景颜色:

QWidget
{
    background-color: #262626;
}
Run Code Online (Sandbox Code Playgroud)

但是如你所知,这会改变所有小部件的背景颜色,甚至我的QPlainTextEdit仍然需要白色背景.而且更烦人的是,这会重置操作系统皮肤并显示丑陋的滚动条(我真的想保留它们).

有没有办法更改选项卡窗格背景而无需重新分配所有组件?

Rua*_*uan 7

我有同样的问题.我可以用它来解决这个问题:

QTabWidget::pane > QWidget {
    background-color: #262626;
}
Run Code Online (Sandbox Code Playgroud)