QPalette 在 QTabBar 中不起作用
QPalette Does not work in QTabBar?
我的表单中有选项卡栏,我想要的是使用不同颜色的文本区分活动和非活动选项卡。我的代码如下。我不明白里面缺少什么,它总是在所有选项卡中显示QPalette::活动文本颜色
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);
QPalette
用作当前样式的输入 ( QStyle
)。调色板的确切用法留给样式。某些样式可能使用设置调色板,但其他样式可能会选择完全忽略调色板。例如,GTK风格完全忽略了它。
也许您可以尝试更改样式以查看它是否更改了某些内容。您可以在特定小部件上设置样式,也可以使用 QApplication::setStyle()
在应用程序范围内设置样式。
正如@saeed所建议的,可以使用样式表。但我个人从不使用它,因为它会打破风格。
我使用 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);
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 为什么简单的算术减法在"if"条件下不起作用?
- 为什么Stroustup书中的has_f不起作用
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- 嵌套While循环不起作用(C++问题)
- C++Matching Brackets 2解决方案不起作用
- QPalette 在 QTabBar 中不起作用
- QSS QTabBar文本对齐不起作用