PyQt 上下文菜单快捷方式



我无法理解添加到 QMenu 的 QAction 的快捷方式功能。让我们从一个例子开始:

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"时调用 action()。但是当我按下快捷方式时没有任何反应。但是,当我将 QAction 添加到测试应用程序

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

它可以工作(尽管当上下文菜单打开时它不起作用)。那我做错了什么呢?

我在OSX 10.6上使用PyQt4

感谢您的任何帮助;)

在 Mac 上,Qt 将控制键映射到 Meta 而不是 Ctrl

相关内容

  • 没有找到相关文章

最新更新