Ниже приведен код, который генерирует пустое окно, которое при щелчке правой кнопкой мыши выводит «Событие контекстного меню!». Мне просто интересно (примерно), как это реализовано в PyQt5, потому что мне неудобно рассматривать его как полный черный ящик. Итак, я предполагаю, что здесь вы перезаписываете contextMenuEvent
из QMainWindow
, сводя его к простой функции print
, но как это имеет какое-либо отношение к щелчку правой кнопкой мыши? Какие шаги выполняет PyQt5 с момента щелчка правой кнопкой мыши до появления сообщения «Событие контекстного меню!» печатается?
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
def contextMenuEvent(self, event):
print("Context menu event!")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()