moved some code into MenuBase
This commit is contained in:
@ -1,13 +1,15 @@
|
|||||||
from PyQt5.QtWidgets import QAction
|
from PyQt5.QtWidgets import QAction
|
||||||
|
|
||||||
|
from .menubase import MenuBase
|
||||||
|
|
||||||
class BarMenu:
|
|
||||||
|
class BarMenu(MenuBase):
|
||||||
|
|
||||||
def __init__(self, bar, name):
|
def __init__(self, bar, name):
|
||||||
|
super().__init__()
|
||||||
self.qmenu = qmenu = bar.addMenu(name)
|
self.qmenu = qmenu = bar.addMenu(name)
|
||||||
qmenu.triggered[QAction].connect(self.on_select)
|
qmenu.triggered[QAction].connect(self.on_select)
|
||||||
self.actions = {}
|
self.actions = {}
|
||||||
self.checkboxes = {}
|
|
||||||
|
|
||||||
def on_select(self, p):
|
def on_select(self, p):
|
||||||
txt = p.text()
|
txt = p.text()
|
||||||
@ -20,14 +22,5 @@ class BarMenu:
|
|||||||
self.qmenu.addAction(name)
|
self.qmenu.addAction(name)
|
||||||
self.actions[name] = func
|
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
19
grum/menus/menubase.py
Normal 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
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2,10 +2,13 @@ from PyQt5.QtCore import Qt, QPoint
|
|||||||
from PyQt5.QtWidgets import QMenu, QAction
|
from PyQt5.QtWidgets import QMenu, QAction
|
||||||
from PyQt5.QtGui import QCursor
|
from PyQt5.QtGui import QCursor
|
||||||
|
|
||||||
|
from .menubase import MenuBase
|
||||||
|
|
||||||
class RClickMenu:
|
|
||||||
|
class RClickMenu(MenuBase):
|
||||||
|
|
||||||
def __init__(self, obj):
|
def __init__(self, obj):
|
||||||
|
super().__init__()
|
||||||
self.obj = obj
|
self.obj = obj
|
||||||
self.qmenu = QMenu()
|
self.qmenu = QMenu()
|
||||||
obj.setContextMenuPolicy(Qt.CustomContextMenu)
|
obj.setContextMenuPolicy(Qt.CustomContextMenu)
|
||||||
@ -19,8 +22,5 @@ class RClickMenu:
|
|||||||
action = QAction(name, triggered=func, parent=self.obj) # here, parent needs to be set
|
action = QAction(name, triggered=func, parent=self.obj) # here, parent needs to be set
|
||||||
self.qmenu.addAction(action)
|
self.qmenu.addAction(action)
|
||||||
|
|
||||||
def addSeparator(self):
|
|
||||||
self.qmenu.addSeparator()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user