0

通常のショートカットで保存、開く、終了するためのメニュー項目を含むメニューバーを備えたQMainWindowがあります。これは、ユーザーが(自分のオプションで)選択できるさまざまなカテゴリーの束をリストするQTableWidgetを作成します。

ユーザーがQTableWidgetをクリックしてカテゴリを変更すると、ウィジェットがフォーカスを取得します。これはほとんど私が望んでいることですが、残念ながらメニューショートカット盗んでいるようです。そのため、Ctrl+Sを押しても保存はトリガーされなくなりました。

私はこれを解決するために実験しkeyPressEventましたが、それを機能させてもやり過ぎのようです。すべてのコントロール/メニューキーをQMainWindowに委任する方法はありませんか?

4

1 に答える 1

1

作成方法に問題があるはずですQMenuBar。これは私にとってうまくいく例です。保存は、フォーカスがテーブルにあるかどうかに関係なく機能し続けます。

class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.resize(640,480)

        menuBar = self.menuBar()
        menu = menuBar.addMenu("&File")
        action = menu.addAction("&Save", self.doAction)
        action.setShortcuts(QtGui.QKeySequence.Save)

        self.view = QtGui.QTableWidget(5,5)
        self.setCentralWidget(self.view)

    def doAction(self):
        print "Save"
于 2012-10-26T22:20:03.367 に答える