QAction как сочетание клавиш на QGraphicsItem - PullRequest
0 голосов
/ 07 октября 2019

Я хотел бы реализовать сочетания клавиш для моей QGraphicsScene. Мои графические объекты являются производными от QGraphicItem и QObject, поэтому я могу использовать соединения сигнал / слот.

Я уже использую QActions для контекстных меню, и теперь я хотел бы использовать некоторые из QActions также в качестве действий для сочетаний клавишна выбранном элементе.

Мои QGraphicsItems включили ItemIsFocusable и ItemIsSelectable через setFlag();

Я могу получить keyPressEvent(QKeyEvent* event), но в этом случае мне придется вручную проверить event->key() == Qt::Key_xxx

Есть ли способ сделать это автоматически?

  • Я пытался сравнить QKeyEvent с QKeySequence, но это не работает (поскольку последовательность может содержать несколько ключей).

Спасибо за любую помощь

1 Ответ

0 голосов
/ 07 октября 2019

Я не совсем уверен, что вы имеете в виду автоматически. Я предполагаю, что вы просто пытаетесь избежать ручной проверки ключа, что, к сожалению, я не уверен ни в каком более простом методе.

Поймать QKeyEvent* event, как вы делаете, обычно такидти, и да, к сожалению, когда у вас есть событие, вам нужно убедиться, что оно ожидается. Вы можете сделать код менее уродливым, используя битовую маску или аналогичные логические операции, но в целом я использовал switch на event->key(), и это делает вещи более читабельными.

...