1
В Windows есть несколько ключевых привязок для стандартных действий. Например, до копия, можно использовать Ctrl + C или Ctrl + Insert.QAction keyBindings
Как обращаться с Qt? Это то, что я сделал:
- Я получил список привязок клавиш с QKeySequence.keyBindings().
- Я создал 2 действия, один для Ctrl + C, другой для Ctrl + Insert.
Кажется, что сработало.
Вопрос: Правильно ли он обрабатывает привязки клавиш с помощью Qt?
исходный код Full:
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