def misc_menu(self): """build menu on Action button""" # info needed to separate edit and view widgets in self.widget_classes name_test_current = [ ("Editor", lambda x: x.lep_type == 'EDITOR', self.edit_widget.__class__), ("Viewer", lambda x: x.lep_type != 'EDITOR', self.view_widget.__class__), ] menu = QtWidgets.QMenu() for name, is_one, current in name_test_current: # list Editor widgets, then Viewer widgets for widget_class in [i for i in self.widget_classes if is_one(i)]: def cb(checked, widget_class=widget_class): self.set_widget(widget_class=widget_class) act = QAction(f"{name}: {widget_class.lep_name}", self) act.setCheckable(True) act.setChecked(widget_class == current) act.triggered.connect(cb) menu.addAction(act) button = self.control_menu_button point = button.position().toPoint() if isQt6 else button.pos( ) # Qt6 documentation is wrong. global_point = button.mapToGlobal(point) menu.exec_(global_point)
def mode_menu(self): """build menu on Action button""" menu = QtWidgets.QMenu() for mode in 'edit', 'view', 'split': act = QAction(mode.title(), self) def cb(checked, self=self, mode=mode): self.set_mode(mode) act.triggered.connect(cb) act.setCheckable(True) act.setChecked(mode == self.mode) menu.addAction(act) button = self.btn_mode point = button.position().toPoint() if isQt6 else button.pos( ) # Qt6 documentation is wrong. global_point = button.mapToGlobal(point) menu.exec_(global_point)
class SimpleRichText(QTextEdit): def __init__(self, focusin, focusout): super().__init__() self.focusin = focusin self.focusout = focusout self.createActions() #self.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) def focusOutEvent(self, event): #print "focus out" self.focusout() def focusInEvent(self, event): self.focusin() def closeEvent(self, event): event.accept() def createActions(self): self.boldAct = QAction(self.tr("&Bold"), self) self.boldAct.setCheckable(True) self.boldAct.setShortcut(self.tr("Ctrl+B")) self.boldAct.setStatusTip(self.tr("Make the text bold")) # self.connect(self.boldAct, SIGNAL("triggered()"), self.setBold) self.triggered.connect(self.setBold) self.addAction(self.boldAct) boldFont = self.boldAct.font() boldFont.setBold(True) self.boldAct.setFont(boldFont) self.italicAct = QAction(self.tr("&Italic"), self) self.italicAct.setCheckable(True) self.italicAct.setShortcut(self.tr("Ctrl+I")) self.italicAct.setStatusTip(self.tr("Make the text italic")) # self.connect(self.italicAct, SIGNAL("triggered()"), self.setItalic) self.triggered.connect(self.setItalic) self.addAction(self.italicAct) def setBold(self): format = QTextCharFormat() if self.boldAct.isChecked(): weight = Weight.Bold else: weight = Weight.Normal format.setFontWeight(weight) self.setFormat(format) def setItalic(self): format = QTextCharFormat() #format.setFontItalic(self.__italic.isChecked()) format.setFontItalic(self.italicAct.isChecked()) self.setFormat(format) def setUnderline(self): format = QTextCharFormat() format.setFontUnderline(self.__underline.isChecked()) self.setFormat(format) def setFormat(self, format): self.textCursor().mergeCharFormat(format) self.mergeCurrentCharFormat(format) def bold(self): print("bold") def italic(self): print("italic")
class SimpleRichText(QtWidgets.QTextEdit): # type:ignore # pylint: disable=method-hidden def __init__(self, focusin, focusout): super().__init__() self.focusin = focusin self.focusout = focusout self.createActions() def focusOutEvent(self, event): self.focusout() def focusInEvent(self, event): self.focusin() def closeEvent(self, event): event.accept() def createActions(self): self.boldAct = QAction(self.tr("&Bold"), self) self.boldAct.setCheckable(True) self.boldAct.setShortcut(self.tr("Ctrl+B")) self.boldAct.setStatusTip(self.tr("Make the text bold")) self.boldAct.triggered.connect(self.setBold) self.addAction(self.boldAct) boldFont = self.boldAct.font() boldFont.setBold(True) self.boldAct.setFont(boldFont) self.italicAct = QAction(self.tr("&Italic"), self) self.italicAct.setCheckable(True) self.italicAct.setShortcut(self.tr("Ctrl+I")) self.italicAct.setStatusTip(self.tr("Make the text italic")) self.italicAct.triggered.connect(self.setItalic) self.addAction(self.italicAct) def setBold(self): format = QTextCharFormat() if self.boldAct.isChecked(): weight = Weight.Bold else: weight = Weight.Normal format.setFontWeight(weight) self.setFormat(format) def setItalic(self): format = QTextCharFormat() format.setFontItalic(self.italicAct.isChecked()) self.setFormat(format) def setUnderline(self): format = QTextCharFormat() format.setFontUnderline(self.__underline.isChecked()) self.setFormat(format) def setFormat(self, format): self.textCursor().mergeCharFormat(format) self.mergeCurrentCharFormat(format) def bold(self): print("bold") def italic(self): print("italic")