使用样式表更改索引的QTabBar选项卡的背景

时间:2010-02-19 17:07:03

标签: c++ qt qtabbar

使用Qt样式表,是否可以为包含4个或更多标签的QTabBar中的每个标签设置不同的背景颜色?

我的Qt应用程序在菜单栏下面有6个标签。我想使用样式表将其背景颜色更改为6种不同的颜色。

2个问题似乎阻碍了我:

  • 我只能使用纯样式表语法设置“第一个”,“中间”和“最后”标签的样式(因此我说“4个或更多”标签)。

  • 我不认为单个选项卡是我可以访问的QTabBar的子窗口小部件。我的想法是,我可以将属性附加到我可以在样式表中引用的每个子选项卡。

例如:

// Stylesheet
QTabBar::tab[index="3"] {
   background: blue;
}

// Code
QTabBar* bar = new QTabBar;
int index = bar->addTab("Tab 1");
QWidget* tab1; //= ????
tab1->setProperty("index", index);

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:5)

单个选项卡是结构而不是对象。然后将这些结构用于绘画。有关详细信息,请参阅Qt source

我有一个实验,我找不到像你指示的那样访问直接索引的方法。为了您的参考,我尝试使用诸如text,toolTip,whatsThis之类的属性,但遗憾的是无法从样式表中访问任何属性。

如果没有自己进行子类化和修改绘制事件,我恐怕我不认为你想做什么。