我很难理解QAction添加到QMenu的快捷方式功能。让我们从一个例子开始:
from PyQt4 import QtCore, QtGui
import sys
class TestApp(QtGui.QMainWindow):
def __init__(self, *args):
super(TestApp, self).__init__(*args)
#create contex menu
self.menu = QtGui.QMenu(self)
self.menu.addAction("testEntry", self.action, "CTRL+T")
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.execContextMenu)
def execContextMenu(self, point):
self.menu.exec_(self.mapToGlobal(point))
def action(self):
print 'action called!'
app = QtGui.QApplication(sys.argv)
win = TestApp()
win.show()
app.exec_()
我希望action()可以在用户按下“Ctrl+T”时调用,也可以在调用上下文菜单后按“Ctrl+T”时调用。但是当我按快捷键的时候什么也没发生。但是当我把QAction添加到TestApp
^{pr2}$它可以工作(尽管上下文菜单打开时不起作用)。我做错什么了?在
我在OSX10.6上使用的是PyQt4
感谢您的帮助;)
在Mac上,Qt将控制键映射到Meta而不是Ctrl
相关问题 更多 >
编程相关推荐