diff --git a/grum/menus/barmenu.py b/grum/menus/barmenu.py index 2633d9c..64121ef 100644 --- a/grum/menus/barmenu.py +++ b/grum/menus/barmenu.py @@ -7,9 +7,12 @@ class BarMenu: 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() + if txt in self.checkboxes: #TODO: allow checkboxes with callback? + return func = self.actions[txt] func() @@ -20,5 +23,11 @@ class BarMenu: 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 +