- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
QT自定义按键的原理和使用
QT 自定义按键的原理和使用
fengzi 2014-06-12
QT 编程和文档中的术语QWS 的全称是Qt windows system,是
QT 自行开发的窗口系统,体系结构类似X Windows ,是一个C/S 结
构,由QWS Server 在物理设备上显示,由QWS Client 实现界面,
两者通过socket 进行彼此的通讯。在很多嵌入式系统里,QT 程序基
本上都是用QWS 来实现,这样保证程序的可移植性。
另外在运行QT 程序时添加-qws 参数,表示这个程序时QWS
Server,否则是QWS Client。任何一个基于QT 的application 都可
以做QWS Server 。当然QWS Server 一定先于QWS Client 启动,
否则 QWS Client 将启动失败。在实际应用中,会指定某个特殊的
application 做QWS Server,这个application 一般还会管理一些其
它的系统资源。在Qt for Embeded Linux 中,系统产生的所有事件
都被传送到server 进程,然后再由 server 进程分发给合适的 client
进程。
注意:在 Qt for Embeded Linux 中,QWSServer 类是有
QApplication 进行实例化的。你不应该自己进行实例化。
在 QWSServer 的构造函数中会调用 QWSServer Private ::
initServer 完成初始化的工作,其中包括各个硬件接口的初始化,如
鼠标,键盘。其中有个openKeyboard 就是用来初始化键盘接口的。
它负责解析环境变量QWS_KEYBOARD 的设定,从中获取键盘设备
的名称和driver handler 的类型,并调用QkbdDriverFactory::create
函数载入与之对应的键盘处理插件。
在我们的系统中,home 程序就是QWS Server,这个程序除了实
现管理桌面,添加程序,调用键盘外,还管理其他的系统资源,比如
keyboard 设备和mouse 设备,所以我们在脚本程序中,一般配置好
QT 的环境后,都会有启动home 的命令./home -qws 。而启动其他的
程序是没有-qws 参数的。
了解了原理之后,就有两种方法来处理qt 自定义键盘。一种是直
接编译qt 的源码,另外一种是制作qt 插件,通过加载插件来使用键
盘。两种方法各有不同,但实现的效果是一样的。在编译制作 qt 之
前,先编写按键驱动。
一、编写按键驱动
按键驱动可以从tiny6410 开发板自带的按键驱动移植过来,修改
一下引脚就行。
#include linux/module.h
#include linux/kernel.h
#include linux/fs.h
#include linux/init.h
#include linux/delay.h
#include linux/poll.h
#include linux/irq.h
#include asm/irq.h
#include asm/io.h
#include linux/interrupt.h
#include asm/uaccess.h
#include mach/hardware.h
#include linux/platform_device.h
#include linux/cdev.h
#include linux/miscdevice.h
#include mach/map.h
#include mach/regs-clock.h
#include mach/regs-gpio.h
#include plat/gpio-cfg.h
#include mach/gpio-bank-n.h
#include mach/gpio-bank-l.h
#define DEVICE_NAME button
struct button_irq_desc
{
int irq;
int number;
char *name;
};
static struct button_irq_desc button_irqs[]=
{
{IRQ_EINT(18),0,KEY0
您可能关注的文档
- QAZ系列透传 模块 产品手册.pdf
- QB 1.5使用手册.pdf
- Python3.5.2 入门指南 高清.pdf
- QCR2007新.pdf
- QFD----质量功能展开-f2.pdf
- QC小组运作实务(通信行业)课件.pdf
- QJLY J7110500C-2014 乘用车电动天窗总成技术条件.pdf
- QB 1.6使用手册.pdf
- QJZ-1200六组合开关使用说明书.pdf
- QNX开发手册(1.1版).pdf
- 2.2大气的受热过程和大气运动课件(共59张PPT).pptx
- 1 秋天 课件(共27张PPT).pptx
- 【2024新教材】语文一上10.ai ei ui生字识记课件 .pptx
- 2.1代数式(第1课时 用字母表示数 )课件(共20张PPT) (2024)沪科版数学七年级上册.pptx
- 统编版语文三年级上册第四单元习作:续编故事 教学实录(2024年).docx
- 预测20 推荐文学作品 中考英语作文20大热点话题预测(2024年).docx
- 小学二年级心理健康第七课 健康的生活习惯教学设计(2024年).doc
- 统编版语文三年级上册第三单元习作:我来编童话 讲义(2024年).docx
- (青岛版)六年级科学上册 4.12 影长与季节(教学课件)(共29张PPT+视频).pptx
- 五年级上册12古诗三首《己亥杂诗》教学设计(2024年).docx
文档评论(0)