Qt键盘驱动映射及简单ui界面

实现的代码存放在http://download.csdn.net/detail/lzh445096/8767199


1.qt键盘驱动映射的实现(kbdhander.h   kbdhander.c)


qt的键盘驱动通常使用一个QsocketNotifier类的对象来检测通过open系统调用打开的键盘设备文件。QsocketNotifier会调用键盘在linux内核空间的file­­­_operations结构体中的轮询函数(poll函数),当有键盘输入时,会放入linux键盘驱动创建的输入缓冲区中,poll函数的返回值会在缓冲区空闲时发生变化。当QsocketNotifier检测到这种变化之后会产生一个activated信号,此信号的槽函数为readKbdData(),槽函数调用read从键盘设备文件中读出内核空间键盘驱动定义的缓冲区中数据。此数据包括type、code和value三个分量,把每个code值与qt库中的标准qt按键值一一对应来定义,这样qt就能感知linux按键的输入了,这就是键盘映射的原理。

                                                         

                                                                               开发平台:TMX320DM365


2.ui界面的实现(aa.ui)


按下实际的某个物理键,要在ui界面上某个控件有此事件的响应,一般用事件过滤器eventFilter实现,在界面的菜单设计中常常涉及按键焦点的移动、按下确认键后弹出子菜单、获得焦点控件的高亮显示、窗体和背景的透明显示等,这些都是qt应用层的事情。

此次界面实现了左右键控制焦点切换、子菜单显示和获得焦点控件变红色及窗体透明显示


                                      

                                                                                              菜单界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值