基于QTE的嵌入式Linux下可视化打印设计
3.3 可视化打印的QTE图形界面开发和移植
上面已经给出了底层可视化打印的构建,而这时就需要一个统一的可视化图形界面能够提供给用户方便,灵活,快捷的操作,起到对整个系统的统一调度和协调,使得对图片和打印的处理更加得心应手。这里为了方便开发,需要建立两套环境系统,一套在PC主机上,我们称之为宿主机,而另一套在开发板(S3C2410)上,称之为目标机。我们要做的就是先要在宿主机上开发出理想中的界面,再通过交叉编译生成在目标机上可执行的二进制代码,然后移植到目标机上进行调试,直到满意为止。而宿主机和目标机都已安装了Linux操作系统,在宿主机上建立开发环境这里不细谈,下面只说说图形界面的开发过程和移植。
我们用qtdesigner设计器来设计完整的图形界面,qtdesigner是嵌入式公司Trolltech的Qt软件包的一个组成部分。如果用户使用的是KDE桌面,那么Qt已经自动安装上了,Qt Designer也很有可能已经被安装好。如果用户的系统没有安装,那么针对不同的版本,可以很方便地找到KDE Development Tools,并安装之。以Red Hat 9.0为例,用户可以从主选单→系统设置→添加/删除应用程序中选择KDE软件开发,即可完成Qt Designer的安装。
而详细的功能设计要在设计器所生成的.cpp文件里改,改的时候可以用Linux自身带的vi编辑器,也可以用Qt公司提供的自身带的编辑器。在设计过程中,我们的开发主要是用QWidget()类作为程序的主类,而用QApplication()类和、QPixmap()类和其它的类作为配套,进行图形的窗口、按钮和输入对话框设计,当然这些图形的选择可以直接在qtdesigner中拖拽,界面的颜色和图标也可以直接在里面加上,但是一些特殊功能的实现还是要在编辑其中改的。界面实现的主要功能是摄像头实时显示背景、对图片进行处理(包括放大、缩小等)、打印定位、图片选择和编辑,摄像头和打印机的配置等。最后,我们在做一个上层和底层的接口程序,要求这个接口程序能够把打印机和摄像头与上层的可视化界面连接起来,形成真正意义上的"无缝"连接。
低版本只能生成.ui文件,我们还需要进行一下转化。用交叉编译好的工具uic来进行转化,具体的转化形式是(假设生成的文件为1.ui)uic –o 1.h 1.ui;uic –o 1.cpp –impl 1.h 1.ui;以上两句语句就会生成1.h和1.cpp两个文件,当1.cpp生成以后,就可以直接把上面已经写好的关于摄像头和打印机的程序直接加到里面去,书写规则与c++相同。现在还需要main.cpp和1.pro文件,main.cpp文件格式比较固定,例如:
#include <QApplication.h>
#include <1.h>
//主程序开始
int main(int argc, char *argv[]){
QApplication app(argc, argv);
Form1 w;//Form1是主程序的名字
w.show();
return app.exec();}
然后,我们用qmake的功能来自动生成.pro文件,命令如下:qmake –project,生成一个.pro文件,我们用vi编译器来修改它,加入CONFIG +=qt warn_on release,为的是让qt编译器认识这些文件。 接下来用qmake生成Makefile文件,最后再make一下,这样便在宿主机上生成了可执行文件。
然后我们可以在pc主机进行试验和修改,再移植到目标机上。而只需要修改Makefile文件里的环境变量,让其进行交叉编译,生成arm下可执行文件,最后烧到板子上就可以了。
4.结束语
当前嵌入式产品正向着功能强的,操作简单,体积小等方向发展,随着功能的不断强大,提供一体化服务成为一种必然和需求。本文设计了通过S3C2410来实现基于QTE的嵌入式Linux的可视化打印设备,脱离了庞大的PC机的预览、控制、使得可视化打印更加方便、快捷,具有很高的灵活性,这样既获得了优越的性能又节省了开支,具有比较高的实用价值。
本文作者创新点:可视化打印往往需要pc机的支持,这给用户造成了很大的不便。本文设计的可视化打印系统,使得可视化打印机完全脱离了pc机工作,且自带液晶显示屏,可以预览文本,处理图像图片,而且可外接各种存储设备,增大了存储容量,使打印机具有了独立性和便携性。而它可驱动不同型号的打印机,故能够节省了开支。
参考文献:
[1] 王乾,基于嵌入式Linux的打印控制系统的设计与实现,微计算机信息,2007,第1期
[2] TROLLECH主页:http://www.trolltech.com/
[3] Xteam(中国)软件技术有限公司 著,Qt程序设计,清华大学出版社,2005
[4] Alessandro Rubini等著,魏永明等译,Linux设备驱动程序(第二版),中国电力出版2002
- Qt Embedded4.6.2与tslib1.4移植到arm平台(11-09)
- QTE及QPE在ARM板上的移植(12-08)
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)