3

使用 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);

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

4

1 回答 1

5

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

我已经对此进行了实验,但我找不到访问直接索引的方法,就像您指出的那样。供您参考,我尝试使用文本、工具提示、whatsThis 等属性,但遗憾的是无法从样式表中访问它们中的任何一个。

如果不自己继承和修改绘画事件,恐怕我认为你想做的事情是不可能的。

于 2010-07-23T10:53:10.020 回答