使用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);
非常感谢任何帮助。感谢。
答案 0 :(得分:5)
单个选项卡是结构而不是对象。然后将这些结构用于绘画。有关详细信息,请参阅Qt source。
我有一个实验,我找不到像你指示的那样访问直接索引的方法。为了您的参考,我尝试使用诸如text,toolTip,whatsThis之类的属性,但遗憾的是无法从样式表中访问任何属性。
如果没有自己进行子类化和修改绘制事件,我恐怕我不认为你想做什么。