我有我的表单中的标签栏,我想要的是区分活动和不活动的标签与它不同颜色的文本。我的代码如下。我不明白其中缺少了什么,它总是在所有选项卡中显示QPalette::Active text颜色
QPalette Palette;
QTabBar* pTabBar = tabBar();
pTabBar->setAutoFillBackground(false);
pTabBar->setDrawBase(true);
Palette.setColor(QPalette::Active, QPalette::Window, QColor(255, 255, 255));
Palette.setColor(QPalette::Active, QPalette::WindowText, QColor(117, 121, 124));
pTabBar->setPalette(Palette);
Palette.setColor(QPalette::Inactive, QPalette::Window, QColor(171, 175, 178));
Palette.setColor(QPalette::Inactive, QPalette::WindowText, QColor(64, 68, 71));
pTabBar->setPalette(Palette);发布于 2017-10-31 20:01:47
将QPalette用作当前样式(QStyle)的输入。调色板的确切用法由样式决定。某些样式可能使用设置调色板,但另一些样式可能选择完全忽略调色板。例如,GTK样式完全忽略了它。
也许你可以试着改变一下样式,看看它是否改变了什么。您可以在特定小部件上设置样式,也可以使用QApplication::setStyle()在应用程序范围内设置样式。
正如@saeed所建议的,使用样式表可以是一种选择。但我个人从不使用它,因为它会破坏风格。
发布于 2017-11-07 18:26:12
我通过使用QPalette修复了这个问题
QTabBar* pTabBar = new QTabBar();
QPalette p = pTabBar->palette();
p.setColor(QPalette::Window, QColor(255,255,255));
p.setColor(QPalette::Button, QColor(255,255,255));
pTabBar->setPalette(p);https://stackoverflow.com/questions/47033259
复制相似问题