1
在Windows上,有幾個鍵綁定用於標準操作。例如,對於拷貝,可以使用Ctrl + C或Ctrl + Insert。QAction keyBindings
如何用Qt處理?這是我做過什麼:
- 我的鍵綁定與QKeySequence.keyBindings的列表()。
- 我創建2動作,一個用於Ctrl + C鍵,另一個爲按Ctrl +插入。
它似乎工作。
問題:是否正確的方式來處理與Qt的鍵綁定?
完整的源代碼:
from sys import argv, exit
from PyQt4.QtGui import QApplication, QWidget, QAction, QKeySequence
class Widget(QWidget):
def __init__(self):
QWidget.__init__(self)
for key in QKeySequence.keyBindings(QKeySequence.Copy):
action = QAction("Copy", self)
action.triggered.connect(self._copy)
action.setShortcut(key)
self.addAction(action)
def _copy(self):
print("Copy!")
print("On Windows, use Ctrl+C or Ctrl+Insert to copy.")
app = QApplication(argv)
w = Widget()
w.show()
exit(app.exec_())
謝謝!我不知道setShortcuts()。然而,關於addAction(),如果我刪除它,它不適用於我。 –
這很奇怪。也許我錯了。 : -/ –
是的,肯定需要'addAction',否則它會以什麼順序等等......它不會假定佈局......另外它需要準確地告訴它是什麼部件來粘貼它(例如,通常動作是定義爲主窗口的子項,但實際上添加到工具欄中,而不是直接添加到主窗口中)。奇怪的是,即使你沒有用圖標顯示動作,但只能通過鍵盤快捷鍵使用它,你需要將它添加到一個小部件:http://stackoverflow.com/questions/1346964/use-qaction-without-adding -to-menu-or-toolbar?rq = 1 – neuronet