我想为我的QGraphicsScene实现键盘快捷键。我的图形对象是从QGraphicItem和QObject派生的,因此我可以使用信号/插槽连接。
我已经在上下文菜单中使用了QAction,现在我想将某些QAction也用作所选项目上的键盘快捷键的操作。
我的QGraphicsItems通过ItemIsFocusable
启用了ItemIsSelectable
和setFlag();
我可以接收keyPressEvent(QKeyEvent* event)
,但在这种情况下,我将不得不手动测试event->key() == Qt::Key_xxx
有什么方法可以自动执行此操作?
感谢您的帮助
我不完全了解您的意思。我假设您只是在尝试避免必须手动检查密钥,但是不幸的是,我不确定任何更简单的方法。
通常,您可以按照自己的方式捕获QKeyEvent* event
,但是不幸的是,一旦您有了活动,就需要确保它是预期的。通过使用位掩码或类似的逻辑操作,您也许可以使代码不太丑陋,但是通常我在switch
上使用了event->key()
,这往往使内容易于阅读。