Python 如何在没有函数调用的情况下启动函数?
有人能给我解释一下程序是如何知道如果我点击鼠标右键,它必须启动contextMenuEvent的?这个电话是在哪里打的?如果是父类执行此操作,它如何知道函数的名称Python 如何在没有函数调用的情况下启动函数?,python,python-3.x,class,pyqt5,Python,Python 3.x,Class,Pyqt5,有人能给我解释一下程序是如何知道如果我点击鼠标右键,它必须启动contextMenuEvent的?这个电话是在哪里打的?如果是父类执行此操作,它如何知道函数的名称 import sys from PyQt5.QtWidgets import QMainWindow, qApp, QMenu, QApplication class Example(QMainWindow): def __init__(self): super().__init__()
import sys
from PyQt5.QtWidgets import QMainWindow, qApp, QMenu, QApplication
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Context menu')
self.show()
def contextMenuEvent(self, event):
cmenu = QMenu(self)
newAct = cmenu.addAction("New")
opnAct = cmenu.addAction("Open")
quitAct = cmenu.addAction("Quit")
action = cmenu.exec_(self.mapToGlobal(event.pos()))
if action == quitAct:
qApp.quit()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
QMainWindow
已经提供了由Qt框架调用的contextMenuEvent
方法
在您的类中,您正在重写此方法,以便调用您的方法,而不是QMainWindow
中的方法
另见