PySide6.QtGui.QPalette

class QPalette

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

概要

方法

注意

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

详细描述

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

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

颜色组:

  • 活动组用于具有键盘焦点的窗口。

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

  • 禁用组用于因某些原因被禁用的小部件(非窗口)。

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

在大多数样式中,激活和非激活看起来是一样的。

可以使用setColor()setBrush()为调色板中任何颜色组的特定角色设置颜色和画笔。颜色组包含一组小部件用于绘制自身的颜色。我们建议小部件使用调色板中的颜色组角色,如“前景”和“基础”,而不是字面颜色如“红色”或“青绿色”。颜色角色在ColorRole文档中进行了枚举和定义。

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

要修改颜色组,您可以调用函数 setColor()setBrush(),具体取决于您想要纯色还是位图图案。

还有相应的color()brush()获取器,以及一个常用的便捷函数来获取当前ColorGroupColorRolewindow()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 枚举定义了当前图形用户界面中使用的不同符号颜色角色。

核心角色包括:

常量

描述

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

Button颜色一起使用的前景色。

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

一种通常与基础色、窗口色和按钮色形成对比或互补的颜色。它通常代表用户选择的桌面个性化。交互组件的样式是一个典型的使用场景。除非明确设置,否则它默认为高亮色。

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__()

构造一个没有设置颜色角色的空调色板对象。

当用作QWidget的调色板时,颜色将按照QWidget::setPalette()的描述进行解析。

另请参阅

palette()

__init__(button)
Parameters:

按钮GlobalColor

button颜色构建一个调色板。其他颜色将基于此颜色自动计算。Window也将是按钮颜色。

__init__(button)
Parameters:

按钮QColor

button颜色构建一个调色板。其他颜色将基于此颜色自动计算。Window也将是按钮颜色。

__init__(palette)
Parameters:

调色板QPalette

构造p的副本。

由于隐式共享,这个构造函数非常快。

__init__(button, window)
Parameters:

button颜色和window构建一个调色板。其他颜色将基于这些颜色自动计算。

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

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

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

构建一个调色板。你可以为windowTextbuttonlightdarkmidtextbright_textbasewindow传递画笔、位图或纯色。

另请参阅

QBrush

accent()
Return type:

QBrush

返回当前颜色组的强调笔刷。

另请参阅

ColorRole brush()

alternateBase()
Return type:

QBrush

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

另请参阅

ColorRole brush()

base()
Return type:

QBrush

返回当前颜色组的基础画笔。

另请参阅

ColorRole brush()

brightText()
Return type:

QBrush

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

另请参阅

ColorRole brush()

brush(cr)
Parameters:

crColorRole

Return type:

QBrush

这是一个重载函数。

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

brush(cg, cr)
Parameters:
Return type:

QBrush

返回指定颜色group中的画笔,用于给定的颜色role

button()
Return type:

QBrush

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

另请参阅

ColorRole brush()

buttonText()
Return type:

QBrush

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

另请参阅

ColorRole brush()

cacheKey()
Return type:

整数

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

当调色板改变时,cacheKey() 将会发生变化。

color(cr)
Parameters:

crColorRole

Return type:

QColor

这是一个重载函数。

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

另请参阅

brush() ColorRole

color(cg, cr)
Parameters:
Return type:

QColor

返回指定颜色group中的颜色,用于给定的颜色role

currentColorGroup()
Return type:

ColorGroup

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

另请参阅

setCurrentColorGroup()

dark()
Return type:

QBrush

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

另请参阅

ColorRole brush()

highlight()
Return type:

QBrush

返回当前颜色组的高亮画笔。

另请参阅

ColorRole brush()

highlightedText()
Return type:

QBrush

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

另请参阅

ColorRole brush()

isBrushSet(cg, cr)
Parameters:
Return type:

布尔

如果调色板上之前已经设置了ColorGroup cgColorRole cr,则返回true;否则返回false

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

ColorRole cr 应该小于 NColorRoles

isCopyOf(p)
Parameters:

pQPalette

Return type:

布尔

如果此调色板和 p 是彼此的副本,即其中一个被创建为另一个的副本且之后未被修改,则返回 true;否则返回 false。这比相等性要严格得多。

另请参阅

operator=() operator==()

isEqual(cr1, cr2)
Parameters:
Return type:

布尔

如果颜色组 cg1 等于 cg2,则返回 true(通常很快);否则返回 false

light()
Return type:

QBrush

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

另请参阅

ColorRole brush()

Return type:

QBrush

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

另请参阅

ColorRole brush()

linkVisited()
Return type:

QBrush

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

另请参阅

ColorRole brush()

mid()
Return type:

QBrush

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

另请参阅

ColorRole brush()

midlight()
Return type:

QBrush

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

另请参阅

ColorRole brush()

__ne__(p)
Parameters:

pQPalette

Return type:

布尔

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

注意

当前在比较调色板时未考虑ColorGroup

另请参阅

operator==()

__eq__(p)
Parameters:

pQPalette

Return type:

布尔

如果此调色板等于 p,则返回 true(通常很快);否则返回 false(较慢)。

注意

在比较调色板时,以下内容未考虑在内:

另请参阅

operator!=()

placeholderText()
Return type:

QBrush

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

注意

在Qt 5.12之前,占位符文本颜色被硬编码为text()。应用了128的alpha值的color()。在Qt 6中,它是一个独立的颜色。

另请参阅

ColorRole brush()

resolve(other)
Parameters:

其他QPalette

Return type:

QPalette

返回一个新的QPalette,它是此实例和other的联合。在此实例中设置的颜色角色优先。未在此实例中设置的角色将从other中获取。

另请参阅

isBrushSet

resolveMask()
Return type:

整数

setBrush(cr, brush)
Parameters:

为调色板中的所有组设置给定颜色role的画笔为指定的brush

setBrush(cg, cr, brush)
Parameters:

这是一个重载函数。

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

setColor(cr, color)
Parameters:

这是一个重载函数。

设置用于所有颜色组中给定颜色role的颜色为指定的纯色color

setColor(cg, cr, color)
Parameters:

设置指定颜色中的颜色,用于给定的颜色角色,设置为指定的纯色颜色

setColorGroup(cr, windowText, button, light, dark, mid, text, bright_text, base, window)
Parameters:

设置cg处的组。您可以为windowTextbuttonlightdarkmidtextbright_textbasewindow传递画笔、位图或纯色。

另请参阅

QBrush

setCurrentColorGroup(cg)
Parameters:

cgColorGroup

将调色板的当前颜色组设置为 cg

另请参阅

currentColorGroup()

setResolveMask(mask)
Parameters:

mask – 整数

shadow()
Return type:

QBrush

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

另请参阅

ColorRole brush()

swap(other)
Parameters:

其他QPalette

将此调色板实例与 other 交换。此函数非常快速且永远不会失败。

text()
Return type:

QBrush

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

另请参阅

ColorRole brush()

toolTipBase()
Return type:

QBrush

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

注意

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

另请参阅

ColorRole brush()

toolTipText()
Return type:

QBrush

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

注意

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

另请参阅

ColorRole brush()

window()
Return type:

QBrush

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

另请参阅

ColorRole brush()

windowText()
Return type:

QBrush

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

另请参阅

ColorRole brush()