我正在工作一个上下文菜单,该菜单由鼠标右键单击按钮触发。我希望它由左键触发。
答案 0 :(得分:1)
解决方案是检测按下鼠标时的左键单击并创建上下文菜单:
from PySide2 import QtCore, QtWidgets
class Dialog(QtWidgets.QDialog):
def mousePressEvent(self, event):
super().mousePressEvent(event)
if event.button() == QtCore.Qt.LeftButton:
p = self.mapToGlobal(event.pos()) # or QtGui.QCursor.pos()
menu = self.create_menu_contextual()
action = menu.exec_(p)
if action is not None:
print(action.text())
def create_menu_contextual(self):
menu = QtWidgets.QMenu()
menu.addAction("Action1")
menu.addAction("Action2")
return menu
def main():
import sys
app = QtWidgets.QApplication(sys.argv)
w = Dialog()
w.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()