Два ключевых сочетания клавиш

Я пытаюсь настроить двухклавишные сочетания клавиш без модификаторов в Pyside/PyQt4.

Я пробовал различные комбинации QEvents и QKeySequences, но безрезультатно.

Я хотел бы сделать что-то вроде этого:

def keyPressEvent(self, event): if (event.key() == QtCore.Qt.Key_O) и (event.key() == QtCore.Qt.Key_P ): print('горячая клавиша принята')

or

fileMenu.addAction(QtGui.QAction("Open Project", self, shortcut=QtGui.QKeySequence("P" and "O"),triggered=self.openProject))

где пользователи нажимают O, затем P, а затем происходит действие.

Кто-нибудь знает во-первых, если это возможно, и если да, то как это сделать?


person Simon Skinner    schedule 23.06.2014    source источник
comment
Оператор and для строк здесь не подходит, потому что "P" and "O" — это просто "O".   -  person Trilarion    schedule 24.06.2014


Ответы (1)


Для меня "O, P" в качестве аргументов для QKeySequence выполняют свою работу.

Пример:

from PySide import QtGui

def beep():
    print('beep')

app = QtGui.QApplication([])

toolbar = QtGui.QToolBar()
toolbar.show()

action = QtGui.QAction("Action", toolbar, shortcut=QtGui.QKeySequence("O, P"), triggered=beep)
toolbar.addAction(action)

app.exec_()
person Trilarion    schedule 24.06.2014
comment
Использование O, P в качестве аргументов для QKeySequence работало нормально, и кажется, что я могу сделать все это в одной строке: self.openProject)) Это также показывает последовательность клавиш в меню файла рядом с командой. - person Simon Skinner; 24.06.2014
comment
@user3767797 user3767797 Я хотел бы обратить ваше внимание на то, что ответ установлен как галочка принятого ответа, если ответ решает вопрос. Подумайте о том, чтобы проверить это, если мой ответ действительно решил ваш вопрос к вашему удовлетворению. - person Trilarion; 30.06.2014