【问题标题】:Change background of indexed QTabBar tabs using stylesheets使用样式表更改索引 QTabBar 选项卡的背景
【发布时间】:2011-01-18 21:10:54
【问题描述】:

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

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: c++ qt qtabbar


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。我的解决方法是在选项卡上使用不同颜色的图标。
    猜你喜欢
    • 2018-01-19
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多