我有类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 - editor将被破坏(鼠标点击将不起作用)。我试着调用初始mousePressEvent,但它不起作用,应用程序崩溃
发布于 2019-12-24 04:20:20
将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!"https://stackoverflow.com/questions/54279409
复制相似问题