class QPalette#

QPalette 类包含每个小部件状态的颜色组。 更多信息

摘要#

方法#

注意:

本文档可能包含自动从C++转换为Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译中的问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来通知我们。

详细描述#

调色板由三个颜色组组成:活动(Active)禁用(Disabled)非活动(Inactive)。Qt中的所有小部件都包含调色板,并使用它们的调色板来自绘自身。这使得用户界面易于配置且易于保持一致性。

如果您创建了一个新的小部件,我们强烈建议您使用调色板中的颜色,而不是硬编码特定的颜色。

颜色组:

  • 活动组用于获得键盘焦点的窗口。

  • 非活动组用于其他窗口。

  • 禁用组用于因某些原因而禁用的小部件(不是窗口)。

活动和非活动窗口都可以包含禁用的小部件(禁用小部件通常被称为不可访问的灰色)。

在大多数样式中,活动和非活动看起来相同。

可以使用setColor()setBrush()在调色板颜色组中的特定角色设置颜色和画刷。颜色组包含小部件用于绘制自身的一组颜色。我们建议小部件使用调色板中的颜色组角色,如“前景”和“基本”,而不是使用像“红色”或“青蓝色”这样的文字颜色。颜色角色在ColorRole文档中枚举和定义。

我们强烈建议您使用当前样式(由QGuiApplication::palette()返回)的默认调色板,并根据需要对其进行修改。这是Qt小部件在被绘制时执行的。

要修改颜色组,您可以根据是否要纯色或位图图案来确定调用函数setColor()setBrush()

此外,还存在相应的 color()brush() 获取器,以及一个常用的便捷函数来获取当前 ColorGroupColorRole : window() , windowText() , base() 等。

可以使用拷贝构造函数来复制调色板,并用 isCopyOf() 方法来测试两个调色板是否为 完全相同

QPalette 通过隐式共享进行了优化,因此将 QPalette 对象作为参数传递是非常高效的。

警告

某些样式不使用调色板进行所有绘图,例如,如果它们使用原生主题引擎。Windows Vista 和 macOS 样式都是如此。

请参阅

QColor

class ColorGroup#

常量

描述

QPalette.Disabled

QPalette.Active

QPalette.Inactive

QPalette.Normal

Active 的同义词

class ColorRole#

警告

本节包含自动从 C++ 翻译到 Python 的代码片段,可能包含错误。

../../_images/palette.png

ColorRole 枚举定义了在当前 GUI 中使用的不同符号颜色角色。

中心角色包括

常量

描述

QPalette.Window

通用背景颜色。

QPalette.WindowText

通用前景颜色。

QPalette.Base

主要用于文本输入小部件的背景颜色,但也可以用于其他绘图 - 如组合框下拉列表和工具栏手柄的背景。通常为白色或其他浅色。

QPalette.AlternateBase

用于交替行的视图中的备用背景颜色(请参阅 QAbstractItemView::setAlternatingRowColors())。

QPalette.ToolTipBase

用于 QToolTip 和 QWhatsThis 的背景颜色。工具提示使用 QPalette 的非活动颜色组,因为工具提示不是活动窗口。

QPalette.ToolTipText

用于 QToolTip 和 QWhatsThis 的前景颜色。工具提示使用 QPalette 的非活动颜色组,因为工具提示不是活动窗口。

QPalette.PlaceholderText

用于各种文本输入小部件的占位符颜色。此枚举值从 Qt 5.12 中引入

QPalette.Text

Base 一起使用的文字前景色。这通常与 WindowText 相同,在这种情况下,它必须与 WindowBase 保持良好的对比。

QPalette.Button

按钮的通用背景色。这种背景色可以不同于 Window,因为某些样式要求按钮有不同的背景色。

QPalette.ButtonText

与按钮颜色一起使用的文字前景色。

QPalette.BrightText

一种与 WindowText 颜色非常不同,并且与例如 Dark 有良好的对比度。通常用于需要与 TextWindowText 有较差对比度的文字绘制位置,例如按下的按钮。注意,文本颜色可以用于除了文字以外的其他事物;文本颜色通常用于文字,但使用文本颜色角色用于线条、图标等是很常见的。

有一些颜色角色主要用于3D凹凸和阴影效果。所有这些通常都源自 Window,并且在依赖于这种关系的某些方式中使用。例如,按钮依赖于它使凹凸有吸引力,Motif滚动条依赖于 Mid 使其稍微不同于 Window

常量

描述

QPalette.Light

Button 颜色更亮。

QPalette.Midlight

位于 ButtonLight 之间。

QPalette.Dark

Button 更暗。

QPalette.Mid

位于 ButtonDark 之间。

QPalette.Shadow

一种非常深的颜色。默认情况下,阴影颜色为 Qt::black。

已选择(标记)的项目有两个角色

常量

描述

QPalette.Highlight

用于指示已选择项目或当前项的颜色。默认情况下,高亮颜色为 Qt::darkBlue。

QPalette.Accent

一个颜色,通常与 Base、Window 和 Button 颜色形成对比或补充。它通常代表用户的桌面个性化选择。交互式组件的样式是一个典型用例。除非明确设置,否则默认为 Highlight。

QPalette.HighlightedText

Highlight 对比度的文本颜色。默认情况下,高亮文本颜色为 Qt::white。

有两个与超链接相关的颜色角色

常量

描述

QPalette.Link

用于未访问过的超链接的文本颜色。默认情况下,链接颜色为 Qt::blue。

QPalette.LinkVisited

用于已访问过的超链接的文本颜色。默认情况下,已访问链接颜色为 Qt::magenta。

请注意,我们在 Qt 中渲染丰富文本时不使用 LinkLinkVisited 角色时,并且我们建议您使用 CSS 和 setDefaultStyleSheet() 函数更改链接的外观。例如

browser = QTextBrowser()
linkColor = QColor(Qt.red)
QString sheet = "a { text-decoration: underline; color: %1 }".arg(linkColor.name())
browser.document().setDefaultStyleSheet(sheet)

常量

描述

QPalette.NoRole

无角色;此特殊角色经常用于表示未分配角色。

__init__(button)#
参数:

buttonGlobalColor

button 颜色构建调色板。其他颜色会自动根据这个颜色计算,而 Window 将与按钮颜色相同。

__init__()

构建了一个空的调色板对象,其中没有设置颜色作用域。

当用作 QWidget 的调色板时,颜色解析方式如 QWidget::setPalette() 所描述。

请参阅

palette()

__init__(palette)
参数:

paletteQPalette

构建了 p 的副本。

这个构造函数由于隐式共享而快速。

__init__(windowText, window, light, dark, mid, text, base)
参数:

构建一个具有指定 windowTextwindowlightdarkmidtextbase 颜色的调色板。按钮颜色将被设置为窗口颜色。

__init__(button)
参数:

buttonQColor

button 颜色构建调色板。其他颜色会自动根据这个颜色计算,而 Window 将与按钮颜色相同。

__init__(windowText, button, light, dark, mid, text, bright_text, base, window)
参数:

构造调色板。可以为 windowTextbuttonlightdarkmidtextbright_textbasewindow 传递画刷、位图或纯颜色。

请参阅

QBrush

__init__(button, window)
参数:

从按钮颜色和窗口颜色构建调色板。其他颜色将根据这些颜色自动计算。

accent()#
返回类型:

QBrush

返回当前颜色组的突出显示画刷。

请参阅

ColorRole brush()

alternateBase()#
返回类型:

QBrush

返回当前颜色组的备用基础画刷。

请参阅

ColorRole brush()

base()#
返回类型:

QBrush

返回当前颜色组的底色画笔。

请参阅

ColorRole brush()

brightText()#
返回类型:

QBrush

返回当前颜色组的明亮文本前景画笔。

请参阅

ColorRole brush()

brush(cg, cr)#
参数:
返回类型:

QBrush

返回指定颜色组的给定颜色角色的画笔。

brush(cr)
参数:

crColorRole

返回类型:

QBrush

这是一个重载函数。

返回在当前ColorGroup中为给定颜色角色设置的画笔。

button()#
返回类型:

QBrush

返回当前颜色组的按钮画笔。

请参阅

ColorRole brush()

buttonText()#
返回类型:

QBrush

返回当前颜色组的按钮文本前景画笔。

请参阅

ColorRole brush()

cacheKey()#
返回类型:

int

返回一个数字,用于标识此QPalette对象的內容。如果不同的QPalette引用相同的内容,则它们可以具有相同的键。

当配乐被更改时,cacheKey()将会改变。

color(cg, cr)#
参数:
返回类型:

QColor

返回指定颜色组的给定颜色角色的颜色。

color(cr)
参数:

crColorRole

返回类型:

QColor

这是一个重载函数。

返回当前 ColorGroup 中给定 role 的颜色。

请参阅

brush() ColorRole

currentColorGroup()#
返回类型:

ColorGroup

返回当前调色的板颜色组。

dark()#
返回类型:

QBrush

返回当前颜色组的深色画笔。

请参阅

ColorRole brush()

highlight()#
返回类型:

QBrush

返回当前颜色组的突出显示画笔。

请参阅

ColorRole brush()

highlightedText()#
返回类型:

QBrush

返回当前颜色组的突出显示文本画笔。

请参阅

ColorRole brush()

isBrushSet(cg, cr)#
参数:
返回类型:

bool

如果指定 ColorGroupColorRole 在这个调色板上已经被设置,返回 true;否则返回 false

ColorGroup 应当小于 NColorGroups ,但你可以使用 Current 。在这种情况下,将使用先前设置的当前颜色组。

ColorRole 应当小于 NColorRoles

isCopyOf(p)#
参数:

pQPalette

返回类型:

bool

如果此调色板和 p 是彼此的副本,则返回 true,即其中一个被创建为另一个的副本,并且后续都没有被修改;否则返回 false。这比相等性更严格。

请参阅

operator=() operator==()

isEqual(cr1, cr2)#
参数:
返回类型:

bool

如果颜色组 cg1 等于 cg2,则快速返回 true;否则返回 false

light()#
返回类型:

QBrush

返回当前颜色组的浅色画刷。

请参阅

ColorRole brush()

返回类型:

QBrush

返回当前颜色组的未访问链接文本画刷。

请参阅

ColorRole brush()

linkVisited()#
返回类型:

QBrush

返回当前颜色组的已访问链接文本画刷。

请参阅

ColorRole brush()

mid()#
返回类型:

QBrush

返回当前颜色组的中间画刷。

请参阅

ColorRole brush()

midlight()#
返回类型:

QBrush

返回当前颜色组的中间亮色画刷。

请参阅

ColorRole brush()

__ne__(p)#
参数:

pQPalette

返回类型:

bool

如果此调色板与 p 不同,则缓慢返回 true;否则返回 false(通常快速返回)。

注意:

比较调色板时,不考虑当前的 ColorGroup

请参阅

operator==()

__eq__(p)#
参数:

pQPalette

返回类型:

bool

如果此调色板等于p,则返回true(通常迅速);否则返回false(缓慢)。

注意:

比较调色板时不考虑以下内容:

请参阅

运算符!=()

placeholderText()#
返回类型:

QBrush

返回当前颜色组的占位文本画笔。

注意:

在Qt 5.12之前,占位文本颜色默认为text(),应用了一个α为128的颜色。在Qt 6中,它是一个独立颜色。

请参阅

ColorRole brush()

resolve(other)#
参数:

otherQPalette

返回类型:

QPalette

返回一个新的QPalette,它是当前实例和other的并集。实例中设置的颜色角色优先。

resolveMask()#
返回类型:

int

setBrush(cg, cr, brush)#
参数:

这是一个重载函数。

将指定颜色group中用于给定颜色role的画笔设置为brush

setBrush(cr, brush)
参数:

将给定颜色role的画笔设置为指定的brush,适用于调色板中所有组。

setColor(cg, cr, color)#
参数:

设置指定颜色组的role中使用的颜色为指定的实心color

setColor(cr, color)
参数:

这是一个重载函数。

将指定颜色组的color设置为指定实心颜色。

setColorGroup(cr, windowText, button, light, dark, mid, text, bright_text, base, window)#
参数:

设置指定颜色的组。对于参数windowTextbuttonlightdarkmidtextbright_textbasewindow,你可以传递画笔、位图或纯色。

请参阅

QBrush

setCurrentColorGroup(cg)#
参数:

cgColorGroup

将当前外观的组设置为cg

setResolveMask(mask)#
参数:

mask – int

shadow()#
返回类型:

QBrush

返回当前颜色组的阴影画笔。

请参阅

ColorRole brush()

swap(其他)#
参数:

otherQPalette

交换此调色板实例与其他。此函数运行非常快且永远不会失败。

text()#
返回类型:

QBrush

返回当前颜色组的文本前景画刷。

请参阅

ColorRole brush()

toolTipBase()#
返回类型:

QBrush

返回当前颜色组的工具提示基础画刷。此画刷用于QToolTip和QWhatsThis。

注意:

工具提示使用QPalette 的非活动颜色组,因为工具提示不是活动窗口。

请参阅

ColorRole brush()

toolTipText()#
返回类型:

QBrush

返回当前颜色组的工具提示文本画刷。此画刷用于QToolTip和QWhatsThis。

注意:

工具提示使用QPalette 的非活动颜色组,因为工具提示不是活动窗口。

请参阅

ColorRole brush()

window()#
返回类型:

QBrush

返回当前颜色组的窗口(一般背景)画刷。

请参阅

ColorRole brush()

windowText()#
返回类型:

QBrush

返回当前颜色组的窗口文本(一般前景)画刷。

请参阅

ColorRole brush()