2013-10-03 94 views
2

我无法理解添加到QMenu中的QAction的快捷功能。让我们用一个例子开始:PyQt上下文菜单快捷键

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_() 

我希望行动()被称为要么按下用户按下“CTRL + T”或者“CTRL + T”时,之后的上下文菜单中调用。但是当我按下快捷键时没有任何反应。但是当我的QAction添加到TestApp

act = self.menu.addAction("testEntry", self.action, "CTRL+T") 
self.addAction(act) 

它的工作原理(尽管它并不时的上下文菜单打开时)。那么我做错了什么?

我使用PyQt4的上OSX 10.6

感谢所有帮助;)

回答

0

在Mac上的Qt的控制键映射到元,而不是按Ctrl