根据具体的硬件驱动程序实现的接口,可以实现类似的接口函数。
Qt/Embedded中对于键盘响应的实际函数位于src/kernel/qkeyboard_qws.cpp中,在qkeyboard_qws.h中,定义了键盘类设备接口的基类QWSKeyboardHandler。具体的键盘硬件接口依然要建立在键盘驱动程序基础上,移植时需要根据键盘驱动程序从该类派生出实现类,实现键盘事件处理函数processKeyEvent()即可。
Qt/Embedded内部对于字符集的处理采用了UNICODE编码标准。Qt/Embedded内部对于字符集的处理采用了UNICODE编码标准。Qt/Embedded同时支持两种对于其它编码标准(如GB2312和GBK)的支持方式:静态编译和动态插件装载。通过配置config.h文件添加相应的编码支持宏定义,可以获得其它编码标准向UNICODE的转换支持,从而在Qfont类中得以转换与显示。由于UNICODE涵盖了中文部分,Qt/Embedded对中文支持也非常好。
Qt/Embedded能够支持TTF、PFA/PFB、BDF 和QPF字体格式。由于自身采用UNICODE编码方式对字符进行处理,在一定程序上导致了能够使用的字体文件体积的增大。为了解决这一问题,Qt/Embedded采用了QPF格式,使用makeqpf等工具可以将TTF等格式的字体转换至QPF格式。图6为笔者在自行设计的MC9328系统上移植Qt/Embedded和Qtopia套件后,增加中文支持后的显示截图。Qt/Embedded版本为2.3.7,Qtopia版本为1.7.0。
4 结论
综上所述,一个具备良好移植性的嵌入式GUI系统,其底层接口应该在很大程度上隐藏具体硬件的实现细节,抽象出GAL与IAL层。对于字符集的支持,也可以从MiniGUI的字符集支持方式和Qt/Embedded的UNICODE支持方式上获得启发。
-- 原文链接: http://www.gd-emb.org/detail/id-16835.html
|