一、描述
1、调色板由三个颜色组组成:活动颜色、禁用颜色和非活动颜色。
2、Qt中的所有小部件都包含一个调色板,并使用它来绘制它们自己。这使得用户界面易于配置和保持一致。
3、颜色组:包含小部件用来绘制自身的一组颜色。分成:
- 活动组用于具有键盘焦点的窗口。
- 非活动组用于其他窗口。
- 禁用组用于由于某种原因被禁用的小部件(而不是窗口)。
4、活动窗口和非活动窗口都可以包含禁用的小部件。(禁用的小部件通常称为不可访问或灰显)
5、在大多数样式中,活动和非活动的外观相同。
6、可以使用setColor()和setBrush()为调色板的任何颜色组中的特定角色设置颜色和画笔。
7、强烈建议使用当前样式的默认调色板(由QGuiApplication::palette()返回),并根据需要进行修改。 这是由Qt的小部件在绘制时完成的。
8、QPalette使用隐式共享进行了优化,因此将QPalette对象作为参数传递非常有效。
二、类型成员
1、QPalette::ColorGroup。颜色组。
- QPalette::Disabled:禁用组
- QPalette::Active:活动组
- QPalette::Inactive:非活动组
- QPalette::Normal:和活动组一样
2、QPalette::ColorRole。颜色角色。
- QPalette::Window:一般背景颜色。
- QPalette::WindowText:一般前景颜色。
- QPalette::Base:主要用作文本输入小部件的背景色,也可以用于其他绘制如组合框下拉列表和工具栏手柄的背景。 通常为白色或其他浅色。
- QPalette::Text:与Base一起使用的前景色。通常和WindowText相同。
- QPalette::AlternateBase:在具有交替行颜色的视图中用作交替背景颜色。
- QPalette::ToolTipBase:用作QToolTip和QWhatsThis的背景色。 工具提示使用QPalette的“非活动”颜色组,因为工具提示不是活动的窗口。
- QPalette::ToolTipText:用作QToolTip和QWhatsThis的前景色。 工具提示使用QPalette的“非活动”颜色组,因为工具提示不是活动的窗口。
- QPalette::PlaceholderText:输入类型的部件的提示信息的颜色。
auto p = ui->textEdit->palette();
p.setColor(QPalette::Normal,QPalette::PlaceholderText,Qt::red);
ui->textEdit->setPalette(p);
ui->textEdit->setPlaceholderText("请输入内容");
- QPalette::Button:常规按钮的背景色。
- QPalette::ButtonText:与Button一起使用的前景色。
- QPalette::BrightText:与WindowText有很大不同的文本颜色。 通常用于需要在Text或WindowText对比度差的地方绘制的文本,例如按下按钮时。
以下的颜色角色用于3D斜角和阴影效果。
- QPalette::Light:比Button颜色浅。
- QPalette::Midlight:在Button和Light之间。
- QPalette::Dark:比Button暗。
- QPalette::Mid:在Button和Dark之间。
- QPalette::Shadow:非常暗的颜色。默认情况下为Qt::black。
标示已选项的颜色角色:
- QPalette::Highlight:用于指示选定项或当前项的颜色。默认情况为Qt::darkBlue。
- QPalette::HighlightedText:与突出显示形成对比的文本颜色。 默认情况为Qt::white。
与超链接有关的颜色角色:
- QPalette::Link:用于未访问的超链接的文本颜色。 默认情况为Qt::blue。
- QPalette::LinkVisited:用于已访问的超链接的文本颜色。 默认情况为Qt::magenta(洋红色)。
注:在Qt中呈现富文本时不使用Link和LinkVisited角色,建议使用QSS。
- QPalette::NoRole:没有作用。通常用于指示尚未分配角色。
三、成员函数
成员函数分成两类:
1、设置颜色角色的颜色的函数
2、获取当前组的某一颜色角色的画刷的函数
都比较简单,不赘诉。