Skip to content

ToolButton

Qt Base Class: QToolButton

Signature: QToolButton(self, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None

Base classes

Name Children Inherits
AbstractButtonMixin
prettyqt.widgets.abstractbutton
Abstract button widget base class, providing functionality common to buttons.
QToolButton
PySide6.QtWidgets
QToolButton(self, parent: Optional[PySide6.QtWidgets.QWidget] \= None) -> None

Subclasses

Class Module Description
BoolDictToolButton prettyqt.custom_widgets.booldicttoolbutton
EnumFlagWidget prettyqt.custom_widgets.editors.enumflagwidget

⋔ Inheritance diagram

graph TD
  1473296219776["widgets.ToolButton"]
  1473293689216["widgets.AbstractButtonMixin"]
  1473293688240["widgets.WidgetMixin"]
  1473299815024["core.ObjectMixin"]
  140713234304496["builtins.object"]
  1473245548480["gui.PaintDeviceMixin"]
  1473365429552["QtWidgets.QToolButton"]
  1473365432480["QtWidgets.QAbstractButton"]
  1473290849680["QtWidgets.QWidget"]
  1473288842240["QtCore.QObject"]
  1473291690208["Shiboken.Object"]
  1473300082368["QtGui.QPaintDevice"]
  1473293689216 --> 1473296219776
  1473293688240 --> 1473293689216
  1473299815024 --> 1473293688240
  140713234304496 --> 1473299815024
  1473245548480 --> 1473293688240
  140713234304496 --> 1473245548480
  1473365429552 --> 1473296219776
  1473365432480 --> 1473365429552
  1473290849680 --> 1473365432480
  1473288842240 --> 1473290849680
  1473291690208 --> 1473288842240
  140713234304496 --> 1473291690208
  1473300082368 --> 1473290849680
  1473291690208 --> 1473300082368

🛈 DocStrings

Bases: AbstractButtonMixin, QToolButton

Quick-access button to commands or options, usually used inside a QToolBar.

Source code in prettyqt\widgets\toolbutton.py
class ToolButton(widgets.AbstractButtonMixin, widgets.QToolButton):
    """Quick-access button to commands or options, usually used inside a QToolBar."""

    def __getitem__(self, item: str) -> QtGui.QAction:
        menu = self.menu()
        return menu[item]

    # def set_menu(self, menu: widgets.QMenu):
    #     menu.setParent(self)
    #     self.setMenu(menu)

    def _get_map(self):
        maps = super()._get_map()
        maps |= {
            "toolButtonStyle": constants.TOOLBUTTON_STYLE,
            "arrowType": constants.ARROW_TYPE,
            "popupMode": POPUP_MODE,
        }
        return maps

    @classmethod
    def for_menu(cls, menu: widgets.QMenu, icon: datatypes.IconType = None) -> Self:
        btn = cls()
        btn.setMenu(menu)
        # btn.set_title(menu.title())
        btn.set_popup_mode("instant")
        btn.set_icon(icon)
        return btn

    def set_default_action(self, action: QtGui.QAction):
        self.setDefaultAction(action)

    def set_popup_mode(
        self, mode: PopupModeStr | widgets.QToolButton.ToolButtonPopupMode
    ):
        """Set the popup mode of the toolbutton.

        Args:
            mode: popup mode to use
        """
        self.setPopupMode(POPUP_MODE.get_enum_value(mode))

    def get_popup_mode(self) -> PopupModeStr:
        """Return popup mode.

        Returns:
            popup mode
        """
        return POPUP_MODE.inverse[self.popupMode()]

    def set_arrow_type(self, mode: constants.ArrowTypeStr | constants.ArrowType):
        """Set the arrow type of the toolbutton.

        Args:
            mode: arrow type to use
        """
        self.setArrowType(constants.ARROW_TYPE.get_enum_value(mode))

    def get_arrow_type(self) -> constants.ArrowTypeStr:
        """Return arrow type.

        Returns:
            arrow type
        """
        return constants.ARROW_TYPE.inverse[self.arrowType()]

    def set_style(self, style: constants.ToolButtonStyleStr | constants.ToolButtonStyle):
        """Set the toolbutton style.

        Args:
            style: style to use
        """
        self.setToolButtonStyle(constants.TOOLBUTTON_STYLE.get_enum_value(style))

    def get_style(self) -> constants.ToolButtonStyleStr:
        """Return toolbutton style.

        Returns:
            toolbutton style
        """
        return constants.TOOLBUTTON_STYLE.inverse[self.toolButtonStyle()]

get_arrow_type() -> constants.ArrowTypeStr

Return arrow type.

Source code in prettyqt\widgets\toolbutton.py
def get_arrow_type(self) -> constants.ArrowTypeStr:
    """Return arrow type.

    Returns:
        arrow type
    """
    return constants.ARROW_TYPE.inverse[self.arrowType()]

get_popup_mode() -> PopupModeStr

Return popup mode.

Source code in prettyqt\widgets\toolbutton.py
def get_popup_mode(self) -> PopupModeStr:
    """Return popup mode.

    Returns:
        popup mode
    """
    return POPUP_MODE.inverse[self.popupMode()]

get_style() -> constants.ToolButtonStyleStr

Return toolbutton style.

Source code in prettyqt\widgets\toolbutton.py
def get_style(self) -> constants.ToolButtonStyleStr:
    """Return toolbutton style.

    Returns:
        toolbutton style
    """
    return constants.TOOLBUTTON_STYLE.inverse[self.toolButtonStyle()]

set_arrow_type(mode: constants.ArrowTypeStr | constants.ArrowType)

Set the arrow type of the toolbutton.

Parameters:

Name Type Description Default
mode ArrowTypeStr | ArrowType

arrow type to use

required
Source code in prettyqt\widgets\toolbutton.py
def set_arrow_type(self, mode: constants.ArrowTypeStr | constants.ArrowType):
    """Set the arrow type of the toolbutton.

    Args:
        mode: arrow type to use
    """
    self.setArrowType(constants.ARROW_TYPE.get_enum_value(mode))

set_popup_mode(mode: PopupModeStr | widgets.QToolButton.ToolButtonPopupMode)

Set the popup mode of the toolbutton.

Parameters:

Name Type Description Default
mode PopupModeStr | ToolButtonPopupMode

popup mode to use

required
Source code in prettyqt\widgets\toolbutton.py
def set_popup_mode(
    self, mode: PopupModeStr | widgets.QToolButton.ToolButtonPopupMode
):
    """Set the popup mode of the toolbutton.

    Args:
        mode: popup mode to use
    """
    self.setPopupMode(POPUP_MODE.get_enum_value(mode))

set_style(style: constants.ToolButtonStyleStr | constants.ToolButtonStyle)

Set the toolbutton style.

Parameters:

Name Type Description Default
style ToolButtonStyleStr | ToolButtonStyle

style to use

required
Source code in prettyqt\widgets\toolbutton.py
def set_style(self, style: constants.ToolButtonStyleStr | constants.ToolButtonStyle):
    """Set the toolbutton style.

    Args:
        style: style to use
    """
    self.setToolButtonStyle(constants.TOOLBUTTON_STYLE.get_enum_value(style))

⌗ Property table

Qt Property Type Doc
objectName QString
modal bool
windowModality Qt::WindowModality
enabled bool
geometry QRect
frameGeometry QRect
normalGeometry QRect
x int
y int
pos QPoint
frameSize QSize
size QSize
width int
height int
rect QRect
childrenRect QRect
childrenRegion QRegion
sizePolicy QSizePolicy
minimumSize QSize
maximumSize QSize
minimumWidth int
minimumHeight int
maximumWidth int
maximumHeight int
sizeIncrement QSize
baseSize QSize
palette QPalette
font QFont
cursor QCursor
mouseTracking bool
tabletTracking bool
isActiveWindow bool
focusPolicy Qt::FocusPolicy
focus bool
contextMenuPolicy Qt::ContextMenuPolicy
updatesEnabled bool
visible bool
minimized bool
maximized bool
fullScreen bool
sizeHint QSize
minimumSizeHint QSize
acceptDrops bool
windowTitle QString
windowIcon QIcon
windowIconText QString
windowOpacity double
windowModified bool
toolTip QString
toolTipDuration int
statusTip QString
whatsThis QString
accessibleName QString
accessibleDescription QString
layoutDirection Qt::LayoutDirection
autoFillBackground bool
styleSheet QString
locale QLocale
windowFilePath QString
inputMethodHints QFlags
text QString
icon QIcon
iconSize QSize
shortcut QKeySequence
checkable bool
checked bool
autoRepeat bool
autoExclusive bool
autoRepeatDelay int
autoRepeatInterval int
down bool
popupMode QToolButton::ToolButtonPopupMode
toolButtonStyle Qt::ToolButtonStyle
autoRaise bool
arrowType Qt::ArrowType