Python 通过左键单击上下文菜单
我正在创建一个上下文菜单,通过鼠标右键单击按钮触发。我希望通过左键单击触发它。解决方案是在按下鼠标时检测左键单击并创建上下文菜单:Python 通过左键单击上下文菜单,python,pyside2,Python,Pyside2,我正在创建一个上下文菜单,通过鼠标右键单击按钮触发。我希望通过左键单击触发它。解决方案是在按下鼠标时检测左键单击并创建上下文菜单: from PySide2 import QtCore, QtWidgets class Dialog(QtWidgets.QDialog): def mousePressEvent(self, event): super().mousePressEvent(event) if event.button() == QtCor
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()
如果你有“N”个问题,那么你必须创建“N”个帖子,请阅读并跳过这篇文章。这是一个令人困惑的问题,主要是因为没有问题,只有漫无边际的问题。您只是想让
B
和D
显示在关联菜单中吗?给出上下文是好的,问一个直截了当的问题更好。@Nachtwache你必须尊重SO的规则,SO中的问题必须准确,否则你的问题就离题了,所以可以结束,因为它显然不好。@Nachtwache你现在应该可以问一个新问题了,为什么一个过于宽泛的问题会坚持它?@Nachtwache是的,这是一个宽泛的问题,就像说:我想要a,B,C,D,E,…,Z。你知道它们是3个独立的问题,因为你最初把它们分开了。您希望通过左键单击激活关联菜单,这与是否存在复选框或是否存在节无关。将“n”个独立问题放在一起不符合SO规则,因为这里的问题必须精确。你为什么不想提出其他问题呢?请使用@username