moved some code into MenuBase

This commit is contained in:
2022-12-30 01:13:02 +01:00
parent f0cc8e9a14
commit ed895fe54f
3 changed files with 27 additions and 15 deletions

View File

@ -1,13 +1,15 @@
from PyQt5.QtWidgets import QAction
from .menubase import MenuBase
class BarMenu:
class BarMenu(MenuBase):
def __init__(self, bar, name):
super().__init__()
self.qmenu = qmenu = bar.addMenu(name)
qmenu.triggered[QAction].connect(self.on_select)
self.actions = {}
self.checkboxes = {}
def on_select(self, p):
txt = p.text()
@ -20,14 +22,5 @@ class BarMenu:
self.qmenu.addAction(name)
self.actions[name] = func
def addSeparator(self):
self.qmenu.addSeparator()
def addCheckbox(self, name, state=False):
action = QAction(name, checkable=True, parent=self.qmenu)
action.setChecked(state)
self.qmenu.addAction(action)
self.checkboxes[name] = action

19
grum/menus/menubase.py Normal file
View File

@ -0,0 +1,19 @@
from PyQt5.QtWidgets import QAction
class MenuBase:
def __init__(self):
self.checkboxes = {}
def addSeparator(self):
self.qmenu.addSeparator()
def addCheckbox(self, name, state=False):
action = QAction(name, checkable=True, parent=self.qmenu)
action.setChecked(state)
self.qmenu.addAction(action)
self.checkboxes[name] = action

View File

@ -2,10 +2,13 @@ from PyQt5.QtCore import Qt, QPoint
from PyQt5.QtWidgets import QMenu, QAction
from PyQt5.QtGui import QCursor
from .menubase import MenuBase
class RClickMenu:
class RClickMenu(MenuBase):
def __init__(self, obj):
super().__init__()
self.obj = obj
self.qmenu = QMenu()
obj.setContextMenuPolicy(Qt.CustomContextMenu)
@ -19,8 +22,5 @@ class RClickMenu:
action = QAction(name, triggered=func, parent=self.obj) # here, parent needs to be set
self.qmenu.addAction(action)
def addSeparator(self):
self.qmenu.addSeparator()