如何在Qt Creator中设置选项卡小部件的背景颜色?

Sem*_*ger 7 user-interface qt4 qt-designer

我正在使用Qt Creator.在我的GUI中,我使用了一个标签小部件.此小部件应具有与主窗口相同的灰色背景颜色(图片A).我通过在Qt Designer中编辑样式表来完成这个:

background-colour: rgb(240, 240, 240);
Run Code Online (Sandbox Code Playgroud)

但现在我有两个我无法解决的新问题:

  • 按钮( - >发送)不再舍入.
  • 编辑框的背景颜色也已变为灰色.

因为我在图B中更改了GUI样式表.

我也试过了

QPalette pal = m_pUi->tabWidget->palette();
pal.setColor(m_pUi->tabWidget->backgroundRole(), Qt::blue);
m_pUi->tabWidget->setPalette(pal);
Run Code Online (Sandbox Code Playgroud)

但这只会改变标签后面的颜色,而不是整个"标签窗口 - 表面"的整个颜色.

我是否必须制作其他样式说明,还是有更简单的解决方案?

图A  - 带样式表

图A - 带样式表

图B  - 没有样式表

图B - 没有样式表

Ang*_*ano 8

我遇到了同样的问题,我发现你需要为每个标签设置这个属性:

ui->tab->setAutoFillBackground(true);
Run Code Online (Sandbox Code Playgroud)

我不确定,但我认为还有必要将属性设置QTabWidget为这样.

我希望这有帮助.

  • 是的,我尝试了这个并且它有效 - 如此简单,如果您想要的只是窗口的背景颜色,则无需使用样式表.您也可以在QtDesigner中设置它,这就是我所做的.在Object Inspector中,每个选项卡都是QTabWidget下的QWidget; 检查每个的setAutoFillBackground属性,你就完成了. (2认同)

小智 7

您想要访问的“事物”称为 QTabBar。记住这一点,您可以编写如下样式表:

QTabBar::tab 
{
    background: #48555E;
    color: white;   
    border-color: #48555E;
}

QTabBar::tab:selected, 
QTabBar::tab:hover 
{
    border-top-color: #1D2A32;
    border-color: #40494E;
    color: black;
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #C1D8E8, stop: 1 #F0F5F8); 
}
Run Code Online (Sandbox Code Playgroud)

此外,您可能会发现这个问题和这个官方文档很有洞察力。