QPalette 类
QPalette 类包含每个窗口状态的颜色组。 更多...
头文件 | #include <QPalette> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
- 成员列表,包括继承的成员
- 已弃用的成员
- QPalette 是隐式共享类的一部分。
公共类型
公共函数
QPalette() | |
QPalette(const QColor &button) | |
QPalette(Qt::GlobalColor button) | |
QPalette(const QColor &button, const QColor &window) | |
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 QPalette &p) | |
QPalette(QPalette &&other) | |
~QPalette() | |
(since 6.6) const QBrush & | 突出() const |
const QBrush & | 替代基础() const |
const QBrush & | 基础() const |
const QBrush & | 亮文本() const |
const QBrush & | 画笔(QPalette::ColorGroup group, QPalette::ColorRole role) const |
const QBrush & | 画笔(QPalette::ColorRole role) const |
const QBrush & | 按钮() const |
const QBrush & | 按钮文本() const |
qint64 | 缓存键() const |
const QColor & | 颜色(QPalette::ColorGroup group, QPalette::ColorRole role) const |
const QColor & | 颜色(QPalette::ColorRole role) const |
QPalette::ColorGroup | 当前颜色组() const |
const QBrush & | 暗色() const |
const QBrush & | 高亮() const |
const QBrush & | 高亮文本() const |
bool | isBrushSet(QPalette::ColorGroup cg, QPalette::ColorRole cr) const |
bool | isCopyOf(const QPalette &p) const |
bool | isEqual(QPalette::ColorGroup cg1, QPalette::ColorGroup cg2) const |
const QBrush & | 亮色() const |
const QBrush & | link() const |
const QBrush & | linkVisited() const |
const QBrush & | mid() const |
const QBrush & | midlight() const |
const QBrush & | placeholderText() const |
QPalette | resolve(const QPalette &other) const |
void | setBrush(QPalette::ColorRole role, const QBrush &brush) |
void | setBrush(QPalette::ColorGroup group, QPalette::ColorRole role, const QBrush &brush) |
void | setColor(QPalette::ColorGroup group, QPalette::ColorRole role, const QColor &color) |
void | setColor(QPalette::ColorRole role, const QColor &color) |
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) |
void | setCurrentColorGroup(QPalette::ColorGroup cg) |
const QBrush & | shadow() const |
void | swap(QPalette &other) |
const QBrush & | text() const |
const QBrush & | toolTipBase() const |
const QBrush & | toolTipText() const |
const QBrush & | window() const |
const QBrush & | windowText() const |
QVariant | operator QVariant() const |
bool | operator!=(const QPalette &p) const |
QPalette & | operator=(const QPalette &p) |
QPalette & | operator=(QPalette &&other) |
(since 6.6) bool | operator==(const QPalette &p) const |
相关非成员
QDataStream & | operator<<(QDataStream &s, const QPalette &p) |
QDataStream & | operator>>(QDataStream &s, QPalette &p) |
详细描述
调色板由三个颜色组组成:活动、禁用和非活动。Qt中的所有小部件都包含调色板并使用其调色板来绘制自身。这使得用户界面易于配置,并更容易保持一致。
如果您创建了一个新的小部件,我们强烈建议您使用调色板中的颜色,而不是直接编写特定颜色。
颜色组
- 活动组用于具有键盘焦点的工作窗口。
- 非活动组用于其他窗口。
- 禁用组用于因某些原因而禁用的控件(而不是窗口)。
活动和非活动窗口都可以包含禁用控件。(禁用控件通常被称为不可访问或灰显。)
在大多数样式表中,活动和非活动看起来相同。
可以使用 setColor() 和 setBrush() 在调色板的颜色组的任何特定角色中设置颜色和画笔。颜色组包含小部件用于绘制自身的颜色组。我们建议小部件使用调色板的“前景”和“基础”等颜色组角色,而不是“红色”或“青绿色”等直接颜色。颜色角色在 ColorRole 文档中枚举和定义。
我们强烈建议您使用当前样式的默认调色板(由 QGuiApplication::palette() 返回)并进行必要的修改。这是通过 Qt 小部件绘制时实现的。
要修改颜色组,请调用 setColor() 和 setBrush() 函数,具体取决于您是想使用纯色还是位图图案。
也存在对应的 color() 和 brush() 获取器,以及一个常用的便利函数来获取当前 ColorGroup 的 ColorRole:window()、windowText()、base() 等。
您可以使用拷贝构造函数来复制调色板,并使用 isCopyOf() 来测试两个调色板是否完全相同。
QPalette 通过 隐式共享 进行优化,因此将 QPalette 对象作为参数传递非常高效。
注意:某些样式并不使用调色板进行所有绘图,例如它们使用原生主题引擎。Windows Vista 和 macOS 风格都是这种情况。
另请参阅:QApplication::setPalette()、QWidget::setPalette() 和 QColor。
成员类型文档
枚举 QPalette::ColorGroup
常数 | 值 | 描述 |
---|---|---|
QPalette::Disabled | 1 | |
QPalette::Active | 0 | |
QPalette::Inactive | 2 | |
QPalette::Normal | Active | Active 的同义词 |
枚举 QPalette::ColorRole
ColorRole
枚举定义了当前 GUI 中使用的不同符号颜色角色。
核心角色包括:
常数 | 值 | 描述 |
---|---|---|
QPalette::Window | 10 | 通用背景颜色。 |
QPalette::WindowText | 0 | 通用前景颜色。 |
QPalette::Base | 9 | 通常用作文本输入小部件的背景颜色,但也可用于其他绘画,例如组合框下拉列表和工具栏手柄的背景。它通常为白色或其他浅色。 |
QPalette::AlternateBase | 16 | 用作具有交替行颜色的视图中的替代背景颜色(请参阅 QAbstractItemView::setAlternatingRowColors())。 |
QPalette::ToolTipBase | 18 | 用作 QToolTip 和 QWhatsThis 的背景颜色。工具提示使用 QPalette 的非活动颜色组,因为工具提示不是活动窗口。 |
QPalette::ToolTipText | 19 | 用作 QToolTip 和 QWhatsThis 的前景颜色。工具提示使用 QPalette 的非活动颜色组,因为工具提示不是活动窗口。 |
QPalette::PlaceholderText | 20 | 用作各种文本输入小部件的占位符颜色。此枚举值自 Qt 5.12 被引入。 |
QPalette::Text | 6 | 用于与 Base 一起使用的背景颜色。这通常与 WindowText 相同,在这种情况下,它必须与 Window 和 Base 提供良好的对比。 |
QPalette::Button | 1 | 通用按钮背景颜色。此背景可以与 Window 不同,因为某些样式要求按钮具有不同的背景颜色。 |
QPalette::ButtonText | 8 | 与 Button 颜色一起使用的前景颜色。 |
QPalette::BrightText | 7 | 一种与WindowText 非常不同的文本颜色,并且与例如Dark 等颜色对比度很好。通常用于需要绘制文本的位置,其中使用Text 或WindowText 提供的对比度较差的地方,如按下按钮。请注意,文本颜色不仅可以用于文字;通常用于文本,但使用文本颜色角色用于线条、图标等也是非常常见的。 |
有一些颜色角色主要用于3D斜边和阴影效果。所有这些都是从Window
衍生出来的,并且在使用方式上依赖于这种关系。例如,按钮依赖它使斜边看起来更有吸引力,Motif滚动条则依赖Mid
使其与Window
略有不同。
常数 | 值 | 描述 |
---|---|---|
QPalette::Light | 2 | 比Button 颜色浅。 |
QPalette::Midlight | 3 | 位于Button 和Light 之间。 |
QPalette::Dark | 4 | 比Button 颜色深。 |
QPalette::Mid | 5 | 位于Button 和Dark 之间。 |
QPalette::Shadow | 11 | 一个非常暗的颜色。默认情况下,阴影颜色是Qt::black。 |
选中的(标记的)项有两个角色
常数 | 值 | 描述 |
---|---|---|
QPalette::Highlight | 12 | 表示选中项或当前项的颜色。默认情况下,高亮颜色是Qt::darkBlue。 |
QPalette::Accent (since Qt 6.6) | 21 | 通常与基础、窗口和按钮颜色对比或补充的颜色。这通常代表用户对桌面个性化的选择。交互式组件的样式是典型用例。除非明确设置,它默认为高亮。 |
QPalette::HighlightedText | 13 | 与Highlight 颜色对比的文本颜色。默认情况下,高亮文本颜色是Qt::white。 |
有两个与超链接相关的颜色角色
常数 | 值 | 描述 |
---|---|---|
QPalette::Link | 14 | 用于未访问过的超链接的文本颜色。默认情况下,链接颜色是Qt::blue。 |
QPalette::LinkVisited | 15 | 用于已访问过的超链接的文本颜色。默认情况下,已访问链接颜色是Qt::magenta。 |
请注意,我们在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);
常数 | 值 | 描述 |
---|---|---|
QPalette::NoRole | 17 | 没有角色;此特殊角色通常用于表示未分配角色。 |
成员函数文档
QPalette::QPalette()
构建一个没有设置颜色角色的空调色板对象。
当用作QWidget的调色板时,颜色会根据QWidget::setPalette中描述的方式解决。QWidget。
另请参阅QApplication::setPalette()和QApplication::palette。
QPalette::QPalette(const QColor &button)
从button颜色构建调色板。其他颜色将根据此颜色自动计算。Window
也将是按钮颜色。
QPalette::QPalette(Qt::GlobalColor button)
从button颜色构建调色板。其他颜色将根据此颜色自动计算。Window
也将是按钮颜色。
QPalette::QPalette(const QColor &button, const QColor &window)
从button颜色和window构建调色板。其他颜色将根据这些颜色自动计算。
QPalette::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)
构建调色板。您可以为 windowText、button、light、dark、mid、text、bright_text、base 和 window 传入画笔、位图或纯色。
参见QBrush。
QPalette::QPalette(const QPalette &p)
构建 p 的副本。
此构造函数非常快,归功于 隐式共享。
[noexcept]
QPalette::QPalette(QPalette &&other)
移动构造 QPalette 实例,使其指向 other 所指向的同一样本。
在被移动后,您只能对 other 赋值或销毁。任何其他操作都将导致未定义行为。
[noexcept]
QPalette::~QPalette()
销毁调色板。
[since 6.6]
const QBrush &QPalette::accent() const
返回当前颜色组的突出显示画笔。
此函数是在 Qt 6.6 中引入的。
const QBrush &QPalette:: alternateBase() const
返回当前颜色组的备选基础画笔。
const QBrush &QPalette::base() const
返回当前颜色组的基础画笔。
const QBrush &QPalette::brightText() const
返回当前颜色组的亮文本前景画笔。
const QBrush &QPalette::brush(QPalette::ColorGroup group, QPalette::ColorRole role) const
返回指定颜色组 group 用于给定颜色 role 的画笔。
const QBrush &QPalette::brush(QPalette::ColorRole role) const
这是一个重载函数。
返回当前 ColorGroup 中为指定颜色 role 设置的画笔。
const QBrush &QPalette::button() const
返回当前颜色组的按钮画笔。
const QBrush &QPalette::buttonText() const
返回当前颜色组的按钮文字前景画笔。
qint64 QPalette::cacheKey() const
返回一个数字,用于标识此 QPalette 对象的内容。不同的 QPalette 对象可以具有相同的密钥,如果它们引用相同的内容。
当调色板被更改时,cacheKey() 将会改变。
const QColor &QPalette::color(QPalette::ColorGroup group, QPalette::ColorRole role) const
返回指定颜色 group 中用于指定颜色 role 的颜色。
另请参阅brush(),setColor() 和 ColorRole。
const QColor &QPalette::color(QPalette::ColorRole role) const
这是一个重载函数。
返回当前 ColorGroup 中为指定颜色 role 设置的颜色。
QPalette::ColorGroup QPalette::currentColorGroup() const
返回调色板的当前颜色组。
另请参阅setCurrentColorGroup。
const QBrush &QPalette::dark() const
返回当前颜色组的暗色画笔。
const QBrush &QPalette::highlight() const
返回当前颜色组的突出显示画笔。
const QBrush &QPalette::highlightedText() const
返回当前颜色组的突出显示文本画笔。
bool QPalette::isBrushSet(QPalette::ColorGroup cg, QPalette::ColorRole cr) const
如果此调色板上的 ColorGroup 和 ColorRole cr 已设置,则返回 true
;否则返回 false
。
颜色组cg应该小于QPalette::NColorGroups,但可以使用QPalette::Current。在这种情况下,将使用先前设置的颜色组。
颜色角色cr应该小于QPalette::NColorRoles。
另请参阅 setBrush() 和 currentColorGroup。
bool QPalette::isCopyOf(const QPalette &p) const
如果此图面和p互为副本,则返回true
,即其中一个是另一个的副本,并且两者随后都没有被修改;否则返回false
。这比相等性要严格得多。
另请参阅 operator=() 和 operator==。
bool QPalette::isEqual(QPalette::ColorGroup cg1, QPalette::ColorGroup cg2) const
如果颜色组cg1等于cg2,则返回true
(通常是快速的);否则返回false
。
const QBrush &QPalette::light() const
返回当前颜色组的亮色画刷。
const QBrush &QPalette::link() const
返回当前颜色组的未访问链接文本画刷。
const QBrush &QPalette::linkVisited() const
返回当前颜色组的已访问链接文本画刷。
const QBrush &QPalette::mid() const
返回当前颜色组的中间色画刷。
const QBrush &QPalette::midlight() const
返回当前颜色组的半亮色画刷。
const QBrush &QPalette::placeholderText() const
返回当前颜色组的占位符文本画刷。
注意:在 Qt 5.12 之前,占位符文本颜色被硬编码为使用QPalette::text().color(),并应用了 128 的 alpha 值。在 Qt 6 中,它是一个独立颜色。
QPalette QPalette::resolve(const QPalette &other) const
返回一个新的QPalette,它是此实例和other的并集。在此实例中设置的颜色角色具有优先权。未在此实例中设置的角色的颜色将从other中获取。
另请参阅 isBrushSet。
void QPalette::setBrush(QPalette::ColorRole role, const QBrush &brush)
将所有组中给定颜色role的画刷设置为指定的brush。
另请参阅brush(),setColor() 和 ColorRole。
void QPalette::setBrush(QPalette::ColorGroup group, QPalette::ColorRole role, const QBrush &brush)
这是一个重载函数。
将指定颜色组中用于指定颜色角色的画笔设置为指定的画笔。
另请参阅brush(),setColor() 和 ColorRole。
void QPalette::setColor(QPalette::ColorGroup group, QPalette::ColorRole role, const QColor &color)
将指定颜色组中用于指定颜色角色的颜色设置为指定的纯色。
另请参阅setBrush(),color()和ColorRole。
void QPalette::setColor(QPalette::ColorRole role, const QColor &color)
这是一个重载函数。
将给定颜色角色的颜色设置为所有颜色组中的指定纯色。
另请参阅brush(),setColor() 和 ColorRole。
void QPalette::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)
设置组为cg。您可以传递画笔、位图或纯色作为windowText、button、light、dark、mid、text、bright_text、base和window。
参见QBrush。
void QPalette::setCurrentColorGroup(QPalette::ColorGroup cg)
将调色板当前颜色组设置为cg。
另请参阅currentTimeGroup()。
const QBrush &QPalette::shadow() const
返回当前颜色组的阴影画笔。
[noexcept]
void QPalette::swap(QPalette &other)
与other交换此调色板实例。此函数非常快速,永远不会失败。
const QBrush &QPalette::text() const
返回当前颜色组的文本前景画笔。
const QBrush &QPalette::toolTipBase() const
返回当前颜色组的工具提示基本画刷。此画刷由QToolTip和QWhatsThis使用。
注意:工具提示使用QPalette的非活动颜色组,因为工具提示不是活动窗口。
const QBrush &QPalette::toolTipText() const
返回当前颜色组的工具提示文本画刷。此画刷由QToolTip和QWhatsThis使用。
注意:工具提示使用QPalette的非活动颜色组,因为工具提示不是活动窗口。
const QBrush &QPalette::window() const
返回当前颜色组的窗口(一般背景)画刷。
const QBrush &QPalette::windowText() const
返回当前颜色组的窗口文本(一般前景)画刷。
QVariant QPalette::operator QVariant() const
将调色板作为QVariant返回。
bool QPalette::operator!=(const QPalette &p) const
如果此调色板与p不同,则返回true
(较慢);否则返回false
(通常较快)。
注意:比较调色板时不考虑当前的颜色组
另请参阅:operator==()。
QPalette &QPalette::operator=(const QPalette &p)
将p赋值给此调色板,并返回对此调色板的引用。
由于隐式共享,此操作速度快。
[noexcept]
QPalette &QPalette::operator=(QPalette &&other)
移动赋值other到此QPalette实例。
[since 6.6]
bool QPalette::operator==(const QPalette &p) const
如果此调色板与p相等,则返回true
(通常较快);否则返回false
(较慢)。
注意:比较调色板时不考虑以下内容
此函数是在 Qt 6.6 中引入的。
另请参阅:operator!=()。
相关非成员函数
QDataStream &operator<<(QDataStream &s, const QPalette &p)
将调色板p写入流s,并返回对流的引用。
另请参阅:QDataStream操作符的格式。
QDataStream &operator>>(QDataStream &s, QPalette &p)
从流s中读取调色板到调色板p,并返回流的一个引用。
另请参阅:QDataStream操作符的格式。
© 2024 Qt公司。此处包含的文档贡献版权属于各自的所有者。此处提供的文档根据自由软件基金会发布并在GNU自由文档许可证版本1.3下的条款进行许可。Qt及其相关标志是芬兰及全球其他国家的Qt公司的商标。所有其他商标均为其各自所有者的财产。