QT for Android 物理按键监听

在QT for Android上实现对物理按键的监听

运行的目标平台比较特殊,有几个比较特殊的物理按键,其实现机制和按键机制不一样,并且从F9多了几个功能键到F27

我们现在就一步步来看看怎么处理

1.首先实现监听Menu键

需要了解的技术:QMenu QAction 信号和槽 QEvent

通过学习QT的Event机制我们可以知道,该如何去实现监听Menu键。在QT的event系统中,当有event产生时会被QT系统扔到消息队列中等待处理。而我们的应用程序就可以通过event()函数来进行获取,而且我们可以对event进行过滤,决定我们把什么event进行抛弃。

在程序的MianWindow中重写父类的void keyPressEvent(QKeyEevnt * event)函数,在此函数可以获取到Android的各种按键监听。

2.实现监听示教器上的其他物理按键

出现的问题: 无法监听到F9以后的按键并抛出异常
W/libNodepad.so( 1868): (null):0 ((null)): Unhandled key code 271 !

只要我们把问题解决了,自然就能监听到其他的物理按键了。
判断:QT的源码中对未知的key code进行了异常抛出

你可能感兴趣的:(QT for Android 物理按键监听)