概述
QPalette class
QPalette类包含每个小部件状态的颜色组。
Header | #include < QPalette > |
---|---|
qmake | QT += gui |
Inherits | |
Inherited By | |
Since |
详细说明
调色板由三个颜色组组成:活动,禁用和不活动。 Qt中的所有小部件都包含一个调色板,并使用其调色板进行绘制。这使用户界面易于配置并且更易于保持一致。
如果创建新的小部件,我们强烈建议您使用调色板中的颜色,而不是硬编码特定颜色。
颜色组:
- Active 活动组用于具有键盘焦点的窗口。
- Inactive 不活动组用于其他窗口。
- Disabled 禁用组用于因某些原因禁用的窗口小部件(非Windows)。
活动窗口和非活动窗口都可以包含禁用的窗口小部件。 (禁用的小部件通常称为不可访问或显示为灰色。)
在大多数样式中,“活动”和“非活动”外观相同。
可以使用setColor() 和setBrush() 为调色板的任何颜色组中的特定角色设置颜色和画笔。颜色组包含小部件用来绘制自身的一组颜色。我们建议小部件使用调色板中的颜色组角色,例如“foreground”和“base”,而不要使用文字颜色,例如“红色”或“turquoise绿松石”。颜色角色在ColorRole文档中进行了枚举和定义。
强烈建议您使用当前样式的默认调色板(由QGuiApplication::palette() 返回),并根据需要进行修改。这是由Qt的小部件在绘制时完成的。
要修改颜色组,请调用函数setColor() 和setBrush() ,具体取决于您要纯色还是像素图图案。
有对应的color() 和brush() ,以及用于获取当前ColorGroup的ColorRole的常用便利函数: window() ,windowText() ,base() 等。
可以使用复制构造函数复制一个调色板,并使用isCopyOf() 测试两个调色板是否相同。
QPalette通过使用隐式共享进行了优化,因此将QPalette对象作为参数传递非常有效。
警告:例如,某些样式如果使用本机主题引擎,则不会在所有图形上使用调色板。 Windows Vista和macOS样式均是如此。
公共类型
enum ColorGroup
Constant | Value | Description |
---|---|---|
QPalette::Disabled | 1 | |
QPalette::Active | 0 | |
QPalette::Inactive | 2 | |
QPalette::Normal | Active | synonym for Active |
enum ColorRole
ColorRole枚举定义了当前GUI中使用的不同符号颜色角色。
Constant | Value | Description |
---|---|---|
QPalette::WindowText | 0 | 一般前景色。 |
QPalette::Button | 1 | 常规按钮的背景色。此背景可能与Window不同,因为某些样式需要按钮使用不同的背景颜色。 |
QPalette::Text | 6 | 与Base一起使用的前景色。这通常与WindowText相同,在这种情况下,它必须与Window和Base提供良好的对比。 |
QPalette::BrightText | 7 | 与WindowText截然不同的文字颜色,例如与黑暗。通常用于需要在Text或WindowText对比度差的地方绘制的文本,例如按下按钮时。请注意,文字颜色可以用于文字以外的其他内容;文本颜色通常用于文本,但是将文本颜色角色用于线条,图标等是很常见的。 |
QPalette::ButtonText | 8 | 与Button颜色一起使用的前景色。 |
QPalette::Base | 9 | 主要用作文本输入小部件的背景色,但也可以用于其他绘画-例如组合框下拉列表和工具栏手柄的背景。通常为白色或其他浅色。 |
QPalette::Window | 10 | 一般背景颜色。 |
QPalette::AlternateBase | 16 | 在具有交替行颜色的视图中用作交替背景色(请参见QAbstractItemView :: setAlternatingRowColors() )。 |
QPalette::ToolTipBase | 18 | 用作QToolTip和QWhatsThis的背景色。工具提示使用QPalette的非活动颜色组,因为工具提示不是活动窗口。 |
QPalette::ToolTipText | 19 | 用作QToolTip和QWhatsThis的前景色。工具提示使用QPalette的非活动颜色组,因为工具提示不是活动窗口。 |
QPalette::PlaceholderText | 20 | 用作各种文本输入小部件的占位符颜色。这个枚举值已在Qt 5.12中引入 |
QPalette::Background | Window | 此值已过时。改用Window。 |
QPalette::Foreground | WindowText | 此值已过时。改用WindowText。 |
有一些颜色角色主要用于3D斜角和阴影效果。 所有这些通常都从Window派生,并以依赖于该关系的方式使用。 例如,按钮依赖于它使斜角看起来很吸引人,而Motif滚动条依赖于Mid与Window稍有不同。
Constant | Value | Description |
---|---|---|
QPalette::Light | 2 | 比按钮颜色浅。 |
QPalette::Midlight | 3 | 在按钮和指示灯之间。 |
QPalette::Dark | 4 | 比Button更暗。 |
QPalette::Mid | 5 | 在Button和Dark之间。 |
QPalette::Shadow | 11 | 非常深的颜色。 默认情况下,阴影颜色为Qt::black。 |
选定(标记)的项目具有两个作用:
Constant | Value | Description |
---|---|---|
QPalette::Highlight | 12 | 一种颜色,指示选定的项目或当前的项目。 默认情况下,突出显示颜色为Qt :: darkBlue。 |
QPalette::HighlightedText | 13 | 与突出显示形成对比的文本颜色。 默认情况下,突出显示的文本颜色为Qt :: white。 |
有两种与超链接有关的颜色角色:
Constant | Value | Description |
---|---|---|
QPalette::Link | 14 | 用于未访问的超链接的文本颜色。 默认情况下,链接颜色为Qt :: blue。 |
QPalette::LinkVisited | 15 | 用于已访问的超链接的文本颜色。 默认情况下,链接访问的颜色是Qt ::洋红色。 |
请注意,在Qt中渲染富文本时,我们不使用Link和LinkVisited角色,建议您使用CSS和QTextDocument::setDefaultStyleSheet() 函数来更改链接的外观。 例如:
QTextBrowser browser;
QColor linkColor(Qt::red);
QString sheet = QString::fromLatin1(
"a { text-decoration: underline; color: %1 }").arg(linkColor.name());
browser.document()->setDefaultStyleSheet(sheet);
Constant | Value | Description |
---|---|---|
QPalette::NoRole | 17 | 没有作用; 此特殊角色通常用于指示尚未分配角色。 |
公共函数
构造、析构和赋值
- QPalette(QPalette &&other)
- QPalette(const QPalette &p)
- QPalette(const QBrush &windowText, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &window)
- QPalette(const QColor &button, const QColor &window)
- QPalette(Qt::GlobalColor button)
- QPalette(const QColor &button)
- QPalette()
- QPalette & operator=(QPalette &&other)
- QPalette & operator=(const QPalette &p)
- ~QPalette()
- void swap(QPalette &other)
- QPalette resolve(const QPalette &other) const
颜色角色
颜色角色 | 值 | 方便函数 |
---|---|---|
QPalette::WindowText | 0 | const QBrush & windowText() const |
QPalette::Button | 1 | const QBrush & button() const |
QPalette::Light | 2 | const QBrush & light() const |
QPalette::Midlight | 3 | const QBrush & midlight() const |
QPalette::Dark | 4 | const QBrush & dark() const |
QPalette::Mid | 5 | const QBrush & mid() const |
QPalette::Text | 6 | const QBrush & text() const |
QPalette::BrightText | 7 | const QBrush & brightText() const |
QPalette::ButtonText | 8 | const QBrush & buttonText() const |
QPalette::Base | 9 | const QBrush & base() const |
QPalette::Window | 10 | const QBrush & window() const |
QPalette::Shadow | 11 | const QBrush & shadow() const |
QPalette::Highlight | 12 | const QBrush & highlight() const |
QPalette::HighlightedText | 13 | const QBrush & highlightedText() const |
QPalette::Link | 14 | const QBrush & link() const |
QPalette::LinkVisited | 15 | const QBrush & linkVisited() const |
QPalette::AlternateBase | 16 | const QBrush & alternateBase() const |
QPalette::NoRole | 17 | |
QPalette::ToolTipBase | 18 | const QBrush & toolTipBase() const |
QPalette::ToolTipText | 19 | const QBrush & toolTipText() const |
QPalette::PlaceholderText | 20 | const QBrush & placeholderText() const |
QPalette::Background | Window | |
QPalette::Foreground | WindowText |
其它
- const QBrush & brush(QPalette::ColorGroup group, QPalette::ColorRole role) const
const QBrush & brush(QPalette::ColorRole role) const
bool isBrushSet(QPalette::ColorGroup cg, QPalette::ColorRole cr) const
void setBrush(QPalette::ColorRole role, const QBrush &brush)
void setBrush(QPalette::ColorGroup group, QPalette::ColorRole role, const QBrush &brush) - const QColor & color(QPalette::ColorGroup group, QPalette::ColorRole role) const
const QColor & color(QPalette::ColorRole role) const
void setColor(QPalette::ColorGroup group, QPalette::ColorRole role, const QColor &color)
void setColor(QPalette::ColorRole role, const QColor &color) - qint64 cacheKey() const
- void setColorGroup(QPalette::ColorGroup cg, const QBrush &windowText, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &window)
- QPalette::ColorGroup currentColorGroup() const
void setCurrentColorGroup(QPalette::ColorGroup cg) - bool isCopyOf(const QPalette &p) const
bool isEqual(QPalette::ColorGroup cg1, QPalette::ColorGroup cg2) const - QVariant operator QVariant() const
bool operator!=(const QPalette &p) const
bool operator==(const QPalette &p) const
相关的函数
- QDataStream & operator<<(QDataStream &s, const QPalette &p)
- QDataStream & operator>>(QDataStream &s, QPalette &p)
最后
以上就是害羞草丛为你收集整理的外观和样式(08):【类】QPalette[官翻]QPalette class 详细说明公共类型公共函数相关的函数的全部内容,希望文章能够帮你解决外观和样式(08):【类】QPalette[官翻]QPalette class 详细说明公共类型公共函数相关的函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复