【发布时间】:2018-09-27 12:57:25
【问题描述】:
有人可以向我解释一下程序是如何知道如果我单击鼠标右键它必须启动 contextMenuEvent 的吗?这个电话是在哪里打的?而如果是父类在做,它怎么知道函数名呢?
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 中。你看过那里吗?
-
我不知道怎么做。 QtWidgets 文件具有 .pyd 格式。
标签: python python-3.x class pyqt5