QAction作为QGraphicsItem上的键盘快捷键

问题描述 投票:0回答:1

我想为我的QGraphicsScene实现键盘快捷键。我的图形对象是从QGraphicItem和QObject派生的,因此我可以使用信号/插槽连接。

我已经在上下文菜单中使用了QAction,现在我想将某些QAction也用作所选项目上的键盘快捷键的操作。

我的QGraphicsItems通过ItemIsFocusable启用了ItemIsSelectablesetFlag();

我可以接收keyPressEvent(QKeyEvent* event),但在这种情况下,我将不得不手动测试event->key() == Qt::Key_xxx

有什么方法可以自动执行此操作?

  • 我试图将QKeyEvent与QKeySequence进行比较,但这不起作用(因为序列可以包含多个键)。

感谢您的帮助

qt qgraphicsview qgraphicsscene qgraphicsitem
1个回答
0
投票

我不完全了解您的意思。我假设您只是在尝试避免必须手动检查密钥,但是不幸的是,我不确定任何更简单的方法。

通常,您可以按照自己的方式捕获QKeyEvent* event,但是不幸的是,一旦您有了活动,就需要确保它是预期的。通过使用位掩码或类似的逻辑操作,您也许可以使代码不太丑陋,但是通常我在switch上使用了event->key(),这往往使内容易于阅读。

© www.soinside.com 2019 - 2024. All rights reserved.