アクティブなタブに基づいてさまざまなイベントをトリガーするキーボード ボタンを再割り当てしようとしています。
以下は私の初期化です:
action = QtGui.QAction(self)
action.setShortcut(QtGui.QKeySequence("w"))
self.connect(action, QtCore.SIGNAL("activated()"), self.pushButtonForward, \
QtCore.SLOT("animateClick()"))
self.addAction(action)
action = QtGui.QAction(self)
action.setShortcut(QtGui.QKeySequence("s"))
self.connect(action, QtCore.SIGNAL("activated()"), self.pushButtonReverse, \
QtCore.SLOT("animateClick()"))
self.addAction(action)
action = QtGui.QAction(self)
action.setShortcut(QtGui.QKeySequence("a"))
self.connect(action, QtCore.SIGNAL("activated()"), self.pushButtonLeft, \
QtCore.SLOT("animateClick()"))
self.addAction(action)
action = QtGui.QAction(self)
action.setShortcut(QtGui.QKeySequence("d"))
self.connect(action, QtCore.SIGNAL("activated()"), self.pushButtonRight, \
QtCore.SLOT("animateClick()"))
self.addAction(action)
action = QtGui.QAction(self)
action.setShortcut(QtGui.QKeySequence("Space"))
self.connect(action, QtCore.SIGNAL("activated()"), self.pushButtonStop, \
QtCore.SLOT("animateClick()"))
self.addAction(action)
したがって、アプリケーションを起動すると、これらは元のキー コマンドです。別のタブにあるキー "a" を self.pushButtonSelectLeft に、キー "d" を self.pushButtonSelectRight に設定しようとしても、何も起こらず、元の WASD コマンドが保持されます。
アクションのリストを削除してアクションのリストを再初期化しようとしましたが、すべてのアクションが完全に削除され、キーを押しても機能しません。
if tabIndex == 2:
actionList = self.actions()
for i in actionList:
del i
action = QtGui.QAction(self)
action.setShortcut(QtGui.QKeySequence("a"))
self.connect(action, QtCore.SIGNAL("activated()"), self.pushButtonSelectLeft, \
QtCore.SLOT("animateClick()"))
self.addAction(action)
action = QtGui.QAction(self)
action.setShortcut(QtGui.QKeySequence("d"))
self.connect(action, QtCore.SIGNAL("activated()"), self.pushButtonSelectRight, \
QtCore.SLOT("animateClick()"))
self.addAction(action)
elif tabIndex == 3:
# delete list again
# change "a" to trigger 'Send button'
# change "d" to trigger 'Next button'
elif tabIndex == 4:
# etc....
現在のタブに基づいてキーを割り当てるために書くことができる if-elif ループのようなものはありますか?