我应该使用KeyPressEvent或QAction来实现按键吗?

Pat*_*ick 3 keyboard qt keyboard-events

在Qt中,要么实现keyPressEvent或创建QAction并为其分配一个组合键,我就可以根据键盘进行操作.

通常首选哪种方法?

Shi*_*nok 5

只要从菜单,工具栏或其他按钮等其他方式触发由您想要的键序列触发的同一事件,就应该使用QAction.这样,您可以对应该执行相同操作的多个小部件使用相同的操作.

摘自QAction doc:

QAction类提供可以插入到窗口小部件中的抽象用户界面操作.

在应用程序中,可以通过菜单,工具栏按钮和键盘快捷键调用许多常用命令.由于用户期望以相同的方式执行每个命令,因此无论使用何种用户界面,将每个命令表示为动作都是有用的.