实用QPalette

一、描述

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:用作QToolTipQWhatsThis的背景色。 工具提示使用QPalette的“非活动”颜色组,因为工具提示不是活动的窗口。
  • QPalette::ToolTipText:用作QToolTipQWhatsThis的前景色。 工具提示使用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、获取当前组的某一颜色角色的画刷的函数

都比较简单,不赘诉。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值