《嵌入式系统开发》课程设计基于QT的数码相框设计和实现(7)

2019-03-10 21:46

基于QT的数码相框设计与实现

(5)原图按钮

void Widget::on_nromal_clicked()//原图片大小 { pix.load(imageList[i]); label->setPixmap(pix); }

(6)恢复按钮

void Widget::on_recover_clicked()//从缩小或放大状态恢复

{pix.load(imageList[i]);//这里设置大小设置为固定值,是因为前面的label的大小已经改变

pix = pix.scaled(315,205,Qt::IgnoreAspectRatio);//设置图片的大小和label的大小相同

label->setPixmap(pix); }

(7)旋转按钮

void Widget::on_zhuan_clicked()//旋转 {

timer->stop();

matrix.rotate(90);//旋转90°

pix = pix.transformed(matrix,Qt::FastTransformation);

pix = pix.scaled(label->width(),label->height(),Qt::IgnoreAspectRatio);//设置图片大小为label的大小,否则就会出现滑动条

label->setPixmap(pix); }

- 27 -

基于QT的数码相框设计与实现

6.4 设计成果

图6-1设计成品

如图所示,运行该程序会出现该界面。初始状态下,只有打开按钮显示功能,其它按钮不可用。当你打开多张图片的时候,所有按钮都可用。点击“播放”按钮,可依次进行图片 的播放。图6-1显示的画面是一张放大的图片,当你点击“恢复”按钮时,图片会立即显示和窗口一样大小。由于对Minni2440开发板,Linux操作系统和Qt Creator软件等并不是特别熟悉,遇到了许多困难,期间花了较多时间来熟悉操作和编程,最终在老师的帮助下顺利完成了该设计,但由于本人在知识面、经验以及能力等方面的局限性和不足之处,本次设计还有待改进。

- 28 -

基于QT的数码相框设计与实现

6.5 程序移植到ARM机上失败的原因分析

本次课程设计没有移植到ARM机上的原因主要有以下几点:

(1)编译arm平台的qt程序应该是arm-linux-g++才对,所以qmake有问题,而arm平台的编译器qmake是在mkspec/qws/arm-linux-g++下配置的,而本次安装软件中缺少该配置,所以应重新下载并安装qt-embedded-free-3.3.7。 (2)本次实验所使用的实验箱中,缺少QT编译的环境,应该重新烧录系统,把QT环境完整的进行安装。

(3)本次实验中可能由于本人的失误,把环境变量配置错误,使系统找不到编译器arm-linux-g++,正确做法应该重新设置环境变量,具体命令为#sudo gedit /etc/environment,再添加路径:/usr/arm/3.3.7/bin,并使其生效#source /etc/environment

(4)本次所使用的QT creator是在官网上下的简体版的,只有68M,里面的内容不完整,导致我们编译的不太正确,建议下完整版的422M。

(5)Qtcreator配置中编译链没有设置正确,应加入GCCE编译链,目标位置就是linux-none-arm-guneabi-g++所在位置。

本章小结:本章主要详细介绍了设计过程,我们主要讲解了实验中所需要的软件,以及开发环境的搭建,开发环境的搭建是极其重要的,如果环境搭载不成功,则程序会提示许许多多的错误。另外,我们还对主要按钮的代码进行了分析,还为大家分析了移植ARM平台失败的原因。本次课程设计是一次软硬结合的设计,二者不可或缺,相辅相成。从这个地方我们会发现嵌入式开发的魅力,我们也对它的前景充满了希望。

- 29 -

基于QT的数码相框设计与实现

7 结论

本次设计是在Linux平台上,基于QT编译数码相框。在设计的过程中,利用虚拟机创建一个系统,然后在Fedora10操作系统中搭建开发环境。熟悉嵌入式Linux系统的特点和结构,利用Mini2440开发板,进行软件程序的编写及烧写,最后实现简单的数码相框功能。数码相框要求简洁实用,界面美观,力求给人以精神上的享受。本设计围绕这一目标,突出界面的美化,如幻灯片的切换等。

该数码相框功能简单,大体框架已具备。本设计基本实现了数码框的功能,但其设计的硬件极其简单,由于成本,时间,技术等客观条件,无法实现较复杂的功能。本设计对嵌入式系统中很重要的一个部分,驱动程序的开发并未全部涉及。驱动程序开发是嵌入式系统中一个非常重要的环节,要开发一个数码相框系统,需要编写大连设备的驱动程序代码。而且驱动程序也在不断的完善和发展中,最新型设备文件系统udev正在逐步取代老式的devfs。在将来条件允许的情况下,可以在此基础上进行很多修改和升级。

- 30 -

参考文献

[1]魏永明. 实时嵌入式Linux系统上GUI的发展与展望. 微电脑世界,2000年,47期

[2]霍妍,凡荣. 基于Linux嵌入式系统的研究与实现.计算机系统应用,2004年,08期

[3]王学龙. 嵌入式Linux系统设计与应用. 清华大学出版社,2001年8月 [4]李宋琛. Linux面向对象窗口高级编程. 北京:科学出版社,2001年6月 [5]陈莉君. Linux操作系统内核分析. 北京:人民邮电出版社,2001年8月 [6]赵烔. Linux内核0.11完全注释. www.oldlinux.org,2004年5月21日 [7]Daniel Solin著,袁鹏飞译. 24小时学通Qt编程. 北京:人民邮电出版社,2000年11月

[8]王洪涛. Linux2.6内核标准教程. 北京:人民邮电出版社,2008年 [9]赵国安,郁斌,薛琳强. 基于Linux嵌入式原理与应用开发. 北京:清华大学出版社,2008年10月

[10]张娟,雪兰. 嵌入式Linux的GUI应用程序的实现. 计算机应用,2003年,04期

[11]北京亚嵌教育研究中心组编. 嵌入式GUI开发设计——基于MiniGUI. 北京:电子工业出版社,2009年5月

[12]陈沨,毛洋林,潘志浩. 基于嵌入式Linux的图形界面显示系统的设计. 微计算机信息, 2004年,01期

[13]基于SKY2440/TQ2440的Qt/Embedded应用程序开发完全手册(上)之24小时学会Qt/Embedded开发

[14]Jasmin Blanchette,Mark Summerfield. C++ GUI Programming with Qt3. Publisher:Prentice Hall PTR,January 15 2004

- 31 -


《嵌入式系统开发》课程设计基于QT的数码相框设计和实现(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:昌平区2018年高三年级第二次统一练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: