from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * import sys class MyLabel(QLabel): def __init__(self, *args, **kw): super().__init__(*args, **kw) self.setContextMenuPolicy(Qt.CustomContextMenu) self.customContextMenuRequested.connect(self.rightMenuShow)#開放右鍵策略 def rightMenuShow(self, pos): #添加右鍵菜單 menu = QMenu(self) menu.addAction(QAction('動作1', menu)) menu.addAction(QAction('動作2', menu)) menu.addAction(QAction('動作3', menu)) menu.triggered.connect(self.menuSlot) menu.exec_(QCursor.pos()) def menuSlot(self, act): print(act.text()) class Demo(QWidget): def __init__(self, *args, **kw): super().__init__(*args, **kw) label = MyLabel('右擊這里', self) label.setGeometry(0, 0 , 60, 30) self.resize(100,100) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ecs = Demo() sys.exit(app.exec_())