menu ==== .. py:module:: qfluentwidgets.components.widgets.menu Module Contents --------------- .. autoapisummary:: qfluentwidgets.components.widgets.menu.CustomMenuStyle qfluentwidgets.components.widgets.menu.DWMMenu qfluentwidgets.components.widgets.menu.MenuAnimationType qfluentwidgets.components.widgets.menu.SubMenuItemWidget qfluentwidgets.components.widgets.menu.MenuItemDelegate qfluentwidgets.components.widgets.menu.ShortcutMenuItemDelegate qfluentwidgets.components.widgets.menu.MenuActionListWidget qfluentwidgets.components.widgets.menu.RoundMenu qfluentwidgets.components.widgets.menu.MenuAnimationManager qfluentwidgets.components.widgets.menu.DummyMenuAnimationManager qfluentwidgets.components.widgets.menu.DropDownMenuAnimationManager qfluentwidgets.components.widgets.menu.PullUpMenuAnimationManager qfluentwidgets.components.widgets.menu.FadeInDropDownMenuAnimationManager qfluentwidgets.components.widgets.menu.FadeInPullUpMenuAnimationManager qfluentwidgets.components.widgets.menu.EditMenu qfluentwidgets.components.widgets.menu.LineEditMenu qfluentwidgets.components.widgets.menu.TextEditMenu qfluentwidgets.components.widgets.menu.IndicatorMenuItemDelegate qfluentwidgets.components.widgets.menu.CheckableMenuItemDelegate qfluentwidgets.components.widgets.menu.RadioIndicatorMenuItemDelegate qfluentwidgets.components.widgets.menu.CheckIndicatorMenuItemDelegate qfluentwidgets.components.widgets.menu.MenuIndicatorType qfluentwidgets.components.widgets.menu.CheckableMenu qfluentwidgets.components.widgets.menu.SystemTrayMenu qfluentwidgets.components.widgets.menu.CheckableSystemTrayMenu qfluentwidgets.components.widgets.menu.LabelContextMenu .. autoapisummary:: qfluentwidgets.components.widgets.menu.createCheckableMenuItemDelegate .. py:class:: CustomMenuStyle(iconSize=14) Bases: :py:obj:`PyQt5.QtWidgets.QProxyStyle` Custom menu style .. py:attribute:: iconSize :value: 14 .. py:method:: pixelMetric(metric, option, widget) .. py:class:: DWMMenu(title='', parent=None) Bases: :py:obj:`PyQt5.QtWidgets.QMenu` A menu with DWM shadow .. py:attribute:: windowEffect .. py:method:: event(e: PyQt5.QtCore.QEvent) .. py:class:: MenuAnimationType Bases: :py:obj:`enum.Enum` Menu animation type .. py:attribute:: NONE :value: 0 .. py:attribute:: DROP_DOWN :value: 1 .. py:attribute:: PULL_UP :value: 2 .. py:attribute:: FADE_IN_DROP_DOWN :value: 3 .. py:attribute:: FADE_IN_PULL_UP :value: 4 .. py:class:: SubMenuItemWidget(menu, item, parent=None) Bases: :py:obj:`PyQt5.QtWidgets.QWidget` Sub menu item .. py:attribute:: showMenuSig .. py:attribute:: menu .. py:attribute:: item .. py:method:: enterEvent(e) .. py:method:: paintEvent(e) .. py:class:: MenuItemDelegate(parent=None) Bases: :py:obj:`PyQt5.QtWidgets.QStyledItemDelegate` Menu item delegate .. py:attribute:: tooltipDelegate :value: None .. py:method:: paint(painter, option, index) .. py:method:: helpEvent(event, view, option, index) .. py:class:: ShortcutMenuItemDelegate(parent=None) Bases: :py:obj:`MenuItemDelegate` Shortcut key menu item delegate .. py:method:: paint(painter: PyQt5.QtGui.QPainter, option: PyQt5.QtWidgets.QStyleOptionViewItem, index: PyQt5.QtCore.QModelIndex) .. py:class:: MenuActionListWidget(parent=None) Bases: :py:obj:`PyQt5.QtWidgets.QListWidget` Menu action list widget .. py:attribute:: scrollDelegate .. py:method:: insertItem(row, item) inserts menu item at the position in the list given by row .. py:method:: addItem(item) add menu item at the end .. py:method:: takeItem(row) delete item from list .. py:method:: adjustSize(pos=None, aniType=MenuAnimationType.NONE) .. py:method:: setItemHeight(height: int) set the height of item .. py:method:: setMaxVisibleItems(num: int) set the maximum visible items .. py:method:: maxVisibleItems() .. py:method:: heightForAnimation(pos: PyQt5.QtCore.QPoint, aniType: MenuAnimationType) height for animation .. py:method:: itemsHeight() Return the height of all items .. py:class:: RoundMenu(title='', parent=None) Bases: :py:obj:`PyQt5.QtWidgets.QMenu` Round corner menu .. py:attribute:: closedSignal .. py:attribute:: isSubMenu :value: False .. py:attribute:: parentMenu :value: None .. py:attribute:: menuItem :value: None .. py:attribute:: lastHoverItem :value: None .. py:attribute:: lastHoverSubMenuItem :value: None .. py:attribute:: isHideBySystem :value: True .. py:attribute:: itemHeight :value: 28 .. py:attribute:: hBoxLayout .. py:attribute:: view .. py:attribute:: aniManager :value: None .. py:attribute:: timer .. py:method:: setMaxVisibleItems(num: int) set the maximum visible items .. py:method:: setItemHeight(height) set the height of menu item .. py:method:: setShadowEffect(blurRadius=30, offset=(0, 8), color=QColor(0, 0, 0, 30)) add shadow to dialog .. py:method:: adjustSize() .. py:method:: icon() .. py:method:: title() .. py:method:: clear() clear all actions .. py:method:: setIcon(icon: Union[PyQt5.QtGui.QIcon, qfluentwidgets.common.icon.FluentIconBase]) set the icon of menu .. py:method:: setTitle(title: str) .. py:method:: addAction(action: Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action]) add action to menu Parameters ---------- action: QAction menu action .. py:method:: addWidget(widget: PyQt5.QtWidgets.QWidget, selectable=True, onClick=None) add custom widget Parameters ---------- widget: QWidget custom widget selectable: bool whether the menu item is selectable onClick: callable the slot connected to item clicked signal .. py:method:: insertAction(before: Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action], action: Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action]) inserts action to menu, before the action before .. py:method:: addActions(actions: List[Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action]]) add actions to menu Parameters ---------- actions: Iterable[QAction] menu actions .. py:method:: insertActions(before: Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action], actions: List[Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action]]) inserts the actions actions to menu, before the action before .. py:method:: removeAction(action: Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action]) remove action from menu .. py:method:: removeMenu(menu) remove submenu .. py:method:: setDefaultAction(action: Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action]) set the default action .. py:method:: addMenu(menu) add sub menu Parameters ---------- menu: RoundMenu sub round menu .. py:method:: insertMenu(before: Union[PyQt5.QtWidgets.QAction, qfluentwidgets.common.icon.Action], menu) insert menu before action `before` .. py:method:: addSeparator() add seperator to menu .. py:method:: hideEvent(e) .. py:method:: closeEvent(e) .. py:method:: menuActions() .. py:method:: mousePressEvent(e) .. py:method:: mouseMoveEvent(e) .. py:method:: exec(pos, ani=True, aniType=MenuAnimationType.DROP_DOWN) show menu Parameters ---------- pos: QPoint pop-up position ani: bool Whether to show pop-up animation aniType: MenuAnimationType menu animation type .. py:method:: exec_(pos: PyQt5.QtCore.QPoint, ani=True, aniType=MenuAnimationType.DROP_DOWN) show menu Parameters ---------- pos: QPoint pop-up position ani: bool Whether to show pop-up animation aniType: MenuAnimationType menu animation type .. py:method:: adjustPosition() .. py:method:: paintEvent(e) .. py:class:: MenuAnimationManager(menu: RoundMenu) Bases: :py:obj:`PyQt5.QtCore.QObject` Menu animation manager .. py:attribute:: managers .. py:attribute:: menu .. py:attribute:: ani .. py:method:: availableViewSize(pos: PyQt5.QtCore.QPoint) Return the available size of view .. py:method:: exec(pos: PyQt5.QtCore.QPoint) .. py:method:: register(name) :classmethod: register menu animation manager Parameters ---------- name: Any the name of manager, it should be unique .. py:method:: make(menu: RoundMenu, aniType: MenuAnimationType) :classmethod: .. py:class:: DummyMenuAnimationManager(menu: RoundMenu) Bases: :py:obj:`MenuAnimationManager` Dummy menu animation manager .. py:method:: exec(pos: PyQt5.QtCore.QPoint) .. py:class:: DropDownMenuAnimationManager(menu: RoundMenu) Bases: :py:obj:`MenuAnimationManager` Drop down menu animation manager .. py:method:: exec(pos) .. py:method:: availableViewSize(pos: PyQt5.QtCore.QPoint) Return the available size of view .. py:class:: PullUpMenuAnimationManager(menu: RoundMenu) Bases: :py:obj:`MenuAnimationManager` Pull up menu animation manager .. py:method:: exec(pos) .. py:method:: availableViewSize(pos: PyQt5.QtCore.QPoint) Return the available size of view .. py:class:: FadeInDropDownMenuAnimationManager(menu: RoundMenu) Bases: :py:obj:`MenuAnimationManager` Fade in drop down menu animation manager .. py:attribute:: opacityAni .. py:attribute:: aniGroup .. py:method:: exec(pos) .. py:method:: availableViewSize(pos: PyQt5.QtCore.QPoint) Return the available size of view .. py:class:: FadeInPullUpMenuAnimationManager(menu: RoundMenu) Bases: :py:obj:`MenuAnimationManager` Fade in pull up menu animation manager .. py:attribute:: opacityAni .. py:attribute:: aniGroup .. py:method:: exec(pos) .. py:method:: availableViewSize(pos: PyQt5.QtCore.QPoint) Return the available size of view .. py:class:: EditMenu(title='', parent=None) Bases: :py:obj:`RoundMenu` Edit menu .. py:method:: createActions() .. py:method:: exec(pos, ani=True, aniType=MenuAnimationType.DROP_DOWN) show menu Parameters ---------- pos: QPoint pop-up position ani: bool Whether to show pop-up animation aniType: MenuAnimationType menu animation type .. py:class:: LineEditMenu(parent: PyQt5.QtWidgets.QLineEdit) Bases: :py:obj:`EditMenu` Line edit menu .. py:attribute:: selectionStart .. py:attribute:: selectionLength .. py:class:: TextEditMenu(parent: PyQt5.QtWidgets.QTextEdit) Bases: :py:obj:`EditMenu` Text edit menu .. py:attribute:: selectionStart .. py:attribute:: selectionLength .. py:class:: IndicatorMenuItemDelegate(parent=None) Bases: :py:obj:`MenuItemDelegate` Menu item delegate with indicator .. py:method:: paint(painter: PyQt5.QtGui.QPainter, option, index) .. py:class:: CheckableMenuItemDelegate(parent=None) Bases: :py:obj:`ShortcutMenuItemDelegate` Checkable menu item delegate .. py:method:: paint(painter: PyQt5.QtGui.QPainter, option: PyQt5.QtWidgets.QStyleOptionViewItem, index: PyQt5.QtCore.QModelIndex) .. py:class:: RadioIndicatorMenuItemDelegate(parent=None) Bases: :py:obj:`CheckableMenuItemDelegate` Checkable menu item delegate with radio indicator .. py:class:: CheckIndicatorMenuItemDelegate(parent=None) Bases: :py:obj:`CheckableMenuItemDelegate` Checkable menu item delegate with check indicator .. py:class:: MenuIndicatorType Bases: :py:obj:`enum.Enum` Menu indicator type .. py:attribute:: CHECK :value: 0 .. py:attribute:: RADIO :value: 1 .. py:function:: createCheckableMenuItemDelegate(style: MenuIndicatorType) create checkable menu item delegate .. py:class:: CheckableMenu(title='', parent=None, indicatorType=MenuIndicatorType.CHECK) Bases: :py:obj:`RoundMenu` Checkable menu .. py:class:: SystemTrayMenu(title='', parent=None) Bases: :py:obj:`RoundMenu` System tray menu .. py:method:: sizeHint() -> PyQt5.QtCore.QSize .. py:class:: CheckableSystemTrayMenu(title='', parent=None, indicatorType=MenuIndicatorType.CHECK) Bases: :py:obj:`CheckableMenu` Checkable system tray menu .. py:method:: sizeHint() -> PyQt5.QtCore.QSize .. py:class:: LabelContextMenu(parent: PyQt5.QtWidgets.QLabel) Bases: :py:obj:`RoundMenu` Label context menu .. py:attribute:: selectedText .. py:attribute:: copyAct .. py:attribute:: selectAllAct .. py:method:: label() -> PyQt5.QtWidgets.QLabel .. py:method:: exec(pos, ani=True, aniType=MenuAnimationType.DROP_DOWN) show menu Parameters ---------- pos: QPoint pop-up position ani: bool Whether to show pop-up animation aniType: MenuAnimationType menu animation type