Skip to content

Palette

Qt Base Class: QPalette

Signature: QPalette(self) -> None QPalette(self, button: PySide6.QtCore.Qt.GlobalColor) -> None QPalette(self, button: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int]) -> None QPalette(self, button: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int], window: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int]) -> None QPalette(self, palette: Union[PySide6.QtGui.QPalette, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor]) -> None QPalette(self, windowText: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap], button: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap], light: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap], dark: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap], mid: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap], text: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap], bright_text: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap], base: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap], window: Union[PySide6.QtGui.QBrush, PySide6.QtCore.Qt.BrushStyle, PySide6.QtCore.Qt.GlobalColor, PySide6.QtGui.QColor, PySide6.QtGui.QGradient, PySide6.QtGui.QImage, PySide6.QtGui.QPixmap]) -> None QPalette(self, windowText: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int], window: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int], light: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int], dark: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int], mid: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int], text: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int], base: Union[PySide6.QtGui.QColor, PySide6.QtGui.QRgba64, Any, PySide6.QtCore.Qt.GlobalColor, str, int]) -> None

Base classes

Name Children Inherits
SerializeMixin
prettyqt.utils.serializemixin
QPalette
PySide6.QtGui
QPalette(self) -> None

⋔ Inheritance diagram

graph TD
  1473245633392["gui.Palette"]
  1473299806240["utils.SerializeMixin"]
  140713234304496["builtins.object"]
  1473300072608["QtGui.QPalette"]
  1473291690208["Shiboken.Object"]
  1473299806240 --> 1473245633392
  140713234304496 --> 1473299806240
  1473300072608 --> 1473245633392
  1473291690208 --> 1473300072608
  140713234304496 --> 1473291690208

🛈 DocStrings

Bases: SerializeMixin, QPalette

Contains color groups for each widget state.

Source code in prettyqt\gui\palette.py
class Palette(serializemixin.SerializeMixin, gui.QPalette):
    """Contains color groups for each widget state."""

    def __getitem__(self, index: RoleStr | gui.QPalette.ColorRole) -> gui.Color:
        return self.get_color(index)

    def __setitem__(
        self, index: RoleStr | gui.QPalette.ColorRole, value: datatypes.ColorType
    ):
        self.set_color(index, value)

    def __repr__(self):
        return get_repr(self, self.get_color("button"), self.get_color("window"))

    def iter_colors(
        self, mode: Literal["auto", "auto_inverted", "dark", "light"] = "auto"
    ):
        if mode == "auto":
            mode = "dark" if self.is_dark() else "light"
        elif mode == "auto_inverted":
            mode = "light" if self.is_dark() else "dark"
        for color in gui.Color.colorNames():
            c = gui.Color(color)
            if (c.is_dark() and mode == "dark") or (not c.is_dark() and mode == "light"):
                yield c.as_qt()

    def highlight_inactive(self, enable: bool = True):
        if enable:
            color = self.color(self.ColorGroup.Active, self.ColorRole.Highlight)
        else:
            pal = gui.Palette()
            color = pal.color(self.ColorGroup.Inactive, self.ColorRole.Highlight)
        self.setColor(self.ColorGroup.Inactive, self.ColorRole.Highlight, color)

    def set_color(
        self,
        role: RoleStr | gui.QPalette.ColorRole,
        color: datatypes.ColorType,
        group: GroupStr | gui.QPalette.ColorGroup = "active",
    ):
        color = colors.get_color(color)
        self.setColor(GROUP.get_enum_value(group), ROLE.get_enum_value(role), color)

    def get_colors(
        self, group: GroupStr | gui.QPalette.ColorGroup = "active"
    ) -> dict[str, gui.Color]:
        return {k: self.get_color(k, group) for k in ROLE}

    def get_color(
        self,
        role: RoleStr | gui.QPalette.ColorRole,
        group: GroupStr | gui.QPalette.ColorGroup = "active",
    ) -> gui.Color:
        return gui.Color(
            self.color(GROUP.get_enum_value(group), ROLE.get_enum_value(role))
        )

    def set_brush(
        self,
        role: RoleStr | gui.QPalette.ColorRole,
        brush: datatypes.ColorAndBrushType,
        group: GroupStr | gui.QPalette.ColorGroup = "active",
    ):
        if not isinstance(brush, gui.QBrush):
            brush = gui.Brush(colors.get_color(brush))
        self.setBrush(GROUP.get_enum_value(group), ROLE.get_enum_value(role), brush)

    def get_brushes(
        self, group: GroupStr | gui.QPalette.ColorGroup = "active"
    ) -> dict[str, gui.Brush]:
        return {k: self.get_brush(k, group) for k in ROLE}

    def get_brush(
        self,
        role: RoleStr | gui.QPalette.ColorRole,
        group: GroupStr | gui.QPalette.ColorGroup = "active",
    ) -> gui.Brush:
        return gui.Brush(
            self.brush(GROUP.get_enum_value(group), ROLE.get_enum_value(role))
        )

    def set_color_group(
        self, group: GroupStr | gui.QPalette.ColorGroup, **kwargs: gui.QBrush
    ):
        """Set the color group.

        Args:
            group: color group to use
            kwargs: keyword arguments passed to setColorGroup
        """
        self.setColorGroup(GROUP.get_enum_value(group), **kwargs)

    def get_color_group(self) -> GroupStr:
        """Return color group.

        Returns:
            color group
        """
        return GROUP.inverse[self.colorGroup()]

    def inverted(self) -> Self:
        pal = type(self)()
        for group in GROUP:
            for role in ROLE:
                color = self.get_color(role, group)
                pal.set_color(role, color.inverted(), group)
        return pal

    @classmethod
    def create_dark_palette(cls) -> Self:
        pal = cls()
        pal.set_color("window", gui.Color(53, 53, 53))
        pal.set_color("window_text", "white")
        pal.set_color("window_text", "grey", group="disabled")
        pal.set_color("base", gui.Color(25, 25, 25))
        pal.set_color("alternate_base", gui.Color(53, 53, 53))
        pal.set_color("tool_tip_base", "slategrey")
        pal.set_color("tool_tip_base", "slategrey", group="inactive")
        pal.set_color("tool_tip_text", "white")
        pal.set_color("tool_tip_text", "white", group="inactive")
        pal.set_color("text", "white")
        pal.set_color("text", "grey", group="disabled")
        pal.set_color("button", gui.Color(53, 53, 53))
        pal.set_color("button_text", "white")
        pal.set_color("button_text", "grey", group="disabled")
        pal.set_color("bright_text", "red")
        pal.set_color("link", "dodgerblue")
        pal.set_color("highlight", "dodgerblue")
        pal.set_color("highlight", gui.Color(80, 80, 80), group="disabled")
        pal.set_color("highlighted_text", "black")
        pal.set_color("highlighted_text", "grey", group="disabled")
        return pal

    def is_dark(self) -> bool:
        col = self.color(self.ColorRole.Window)
        return max(col.getRgb()[:3]) < 115

get_color_group() -> GroupStr

Return color group.

Source code in prettyqt\gui\palette.py
def get_color_group(self) -> GroupStr:
    """Return color group.

    Returns:
        color group
    """
    return GROUP.inverse[self.colorGroup()]

set_color_group(group: GroupStr | gui.QPalette.ColorGroup, **kwargs: gui.QBrush)

Set the color group.

Parameters:

Name Type Description Default
group GroupStr | ColorGroup

color group to use

required
kwargs QBrush

keyword arguments passed to setColorGroup

{}
Source code in prettyqt\gui\palette.py
def set_color_group(
    self, group: GroupStr | gui.QPalette.ColorGroup, **kwargs: gui.QBrush
):
    """Set the color group.

    Args:
        group: color group to use
        kwargs: keyword arguments passed to setColorGroup
    """
    self.setColorGroup(GROUP.get_enum_value(group), **kwargs)