PyQt上下文菜单快捷键

2024-05-16 06:44:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难理解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

感谢您的帮助;)


Tags: importselfinitdefsysargsactionmenu