Как правильно переопределить qscintilla mousePressEvent?
У меня есть класс MainWindow и у него есть редактор qscintilla, я хочу добавить слушателя в редактор mousePressEvent
class MainWindow(QtWidgets.QMainWindow, gui.Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.editor.mousePressEvent = self.on_editor_click
def on_editor_click(self, QMouseEvent):
// here i want add my code
return QsciScintilla.mousePressEvent(self, QMouseEvent)
Если я переопределю mousePressEvent - редактор сломается (щелчки мыши не будут работать). Я пытался вызвать первоначальный mousePressEvent, но он не работает, сбой приложения
0 ответов
Назначение метода mousePressEvent другой функции неверно, mousePressEvent не является сигналом, это функция, которая является частью QsciScintilla. Возможное решение - создать персонализированный QsciScintilla, который излучает сигнал, созданный, как показано ниже:
class ClickQsciScintilla(QsciScintilla):
clicked = QtCore.pyqtSignal()
def mousePressEvent(self, event):
self.clicked.emit()
QsciScintilla.mousePressEvent(self, event)
Затем вы создаете экземпляр ClickQsciScintilla и подключаетесь к этому сигналу:
self.__editor = ClickQsciScintilla()
self.__editor.clicked.connect(self.on_editor_click)
Ваш обработчик:
def on_editor_click(self):
print "Editor was clicked!"