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

Rob*_*bin 3 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);
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*aid 5

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

我已经对此进行了实验,我找不到像您所指示的那样访问直接索引的方法.为了您的参考,我尝试使用诸如text,toolTip,whatsThis之类的属性,但遗憾的是无法从样式表访问其中的任何属性.

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