【问题标题】:How to set the background color of a tab widget in Qt Creator?如何在 Qt Creator 中设置选项卡小部件的背景颜色?
【发布时间】:2012-07-15 17:24:38
【问题描述】:

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

background-colour: rgb(240, 240, 240);

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

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

在我更改样式表之前,GUI 看起来像图片 B 中的样子。

我也试过

QPalette pal = m_pUi->tabWidget->palette();
pal.setColor(m_pUi->tabWidget->backgroundRole(), Qt::blue);
m_pUi->tabWidget->setPalette(pal);

但这只会改变选项卡后面的颜色,而不是整个“选项卡窗口表面”的整个颜色。

我是否必须进行额外的样式描述,还是有更简单的解决方案?

图片 A - 带样式表

图片 B - 没有样式表

【问题讨论】:

  • 我发现在 XP 下背景总是灰色的,但在 Windows 7 下它是白色的。
  • 你试过弄乱调色板上的按钮颜色吗?可能是标签栏将其用于其标签。在没有样式表的图片上,选项卡和按钮看起来非常相似。

标签: user-interface qt4 qt-designer


【解决方案1】:

我遇到了同样的问题,我发现您需要为每个选项卡设置此属性:

ui->tab->setAutoFillBackground(true);

我不确定,但我认为也有必要将该属性设置为QTabWidget

希望对你有所帮助。

【讨论】:

  • 是的,我试过了,它奏效了——很简单,如果你想要的只是窗口的背景颜色,就没有必要搞乱样式表了。您也可以在 QtDesigner 中进行设置,这就是我所做的。在Object Inspector中,每个tab都是QTabWidget下的一个QWidget;检查每个的 setAutoFillBackground 属性,你就完成了。
【解决方案2】:

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

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); 
}

您还可能会发现this question 和这个official documentation 很有见地。

【讨论】:

    猜你喜欢
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多