基于Windows 7操作系统和Qt技术的电子相册设计

时间:2022-10-12 04:26:28

基于Windows 7操作系统和Qt技术的电子相册设计

摘要: Qt是一个跨平台的C++图形用户界面库,由挪威的TrollTech公司开发,能提供用于用户应用开发的图形界面及丰富的图形库。基于windows 7操作系统,采用嵌入式qt技术,C++语言进行模块化编程,设计了一款智能化的电子相册。该相册具有图片加载、浏览、旋转、放大与缩小、循环播放等基本功能。测试结果表明该设计具有人性化,操作简单等特点。

关键词: Qt; Windows 7操作系统; 模块化编程; 电子相册

中图分类号: TN911⁃34; TP273文献标识码: A文章编号: 1004⁃373X(2014)08⁃0030⁃02

Design of electronic photo album based on Windows 7 operating system and QT

YAN Li⁃hong1, LIN Zhi⁃xiong2, YANG Xing3

(1. Information Engineering College , Xi’an Eurasia Univisity, Xi’an , 710065, China;

2. Department of Electronics and Information Engineering, Putian University, Fujian, 351100, China;

3. Xi’an South Electronic Technology Co., Ltd, Xi’an, 710068, China )

Abstract: With the development of embedded technology, humanization and intelligent consumer electronics become more and more popular in people′s life. Qt provided by TrollTech Corporation in Norway is a cross⁃platform graphical user interface library of C++, which can provide visual graphic interface and rich graphics library for application program developers. An intelligent electronic photo album was designed by using Windows 7 operating system, QT embedded technology and modularization programming with C++ language. The electronic album has the basic functions of photo loading, browse, amplification, reduction, loop playback and so on. The testing result shows that the album has and is convenient to operate.

Keywords: QT; Windows 7 operating system; modularization programming; electronic albu

随着电子电路集成化和计算机技术的快速发展,航空、医疗、消费电子、汽车电子等众多领域对嵌入式技术应用越来越广泛。而作为消费电子领域的产品电子相册具有图、文、声、像并茂的表现手法,随意修改编辑的功能,快速的检索方式,永不褪色的恒久保存特性,以及廉价复制分发等传统相册无法比拟的优越性,现在已得到现代人的青睐[1⁃4]。因此,采用嵌入式技术,通过人机交互界面的建立进行电子相册设计就显得很有十分必要。

1Qt开发环境分析

Qt是一个跨平台的C++图形用户界面库[5⁃8]。由挪威的TrollTech公司开发,目前已被Nokia收购。Qt的主要特点有:面向对象,很容易扩展,且允许真正的组件编程;Qt对各个模块进行了良好的封装,使各模块可重用性较好;优良的跨平台特性,使用Qt类编写的程序可以实现 “一次编码,到处编译”,极大的降低了跨平台开发的难度(丁丁等,2004);持Windows,Linux,Solaris,SunOS,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX 等操作系统,面向对象很容易扩展。Qt提供了一种称为 signals/slots 的安全类型来替代callback,具有良好的封装机制,可重用性较好。同时包含近700API类库,允许真正的组件编程,是一种开源软件,使用起来简便且高效,具有良好的可移植性,目前主流的具有移植性的GUI API开发包有miniGUI,Qt,OpenGUI。在Qt的应用程序中,首先要进行初始化设置,即首先是创建QApplication对象,QApplication类是负责图形用户界面的应用程序的控制流和主设置。Qt软件用户界面如图1所示。

int main( int argc, char **argv )

{

QApplication app( argc,argv );

......}

图1 Qt软件用户界面

2基于Qt的电子相册的设计

本文基于Windows 7操作系统,采用Qt技术,利用C++语言[9⁃11]进行模块化编程,设计了一款电子相册,具有浏览、旋转、图片切换以及放大缩小等功能,该电子相册还支持jpg,png,gif和bmp等格式图片的浏览。见图2。

图2 电子相册功能结构图

2.1电子相册的界面设计

本设计的电子相册界面大小设定为1 024×500,界面的左侧显示图片文件名列表(当前浏览图片名为蓝色),宽度为200,右侧为图片显示区域,图片显示区域的下方为图片放大/缩小滑动条。该相册界面具有OPEN(打开图片文件)、ZOOMIN(缩小图片)、ZOOMOUT(放大图片)、LOOP(幻灯片循环模式显示)、PAUSE(暂停)和QUIT(一键退出)等功能按钮,界面如图3所示。

相册界面大小的设定程序代码如下:

Window::Window()

{

setFixedSize( 1024,500 );

QSplitter *splitter = new QSplitter(Qt::Horizontal);

listwidget = new QListWidget();

listwidget⁃>setFixedWidth(200);

......

}

2.2图片显示功能设计

进入电子相册界面后,通过界面左侧的显示可以打开计算机存储图片所在的文件夹,将从当前目录下扫描xpm,jpg,png,gif格式的图片并将其名称存入文件夹中,通过load函数来加载图片到一个QImage类型变量中,然后将此变量和Label关联起来,最终在Label上显示实现的图片。打开图片的部分代码如下:

void Photo::load(QString filename) //打开图片

{

pixmap.load(filename);

m_rect = rect();

update();

}

图3 电子相册界面设计

2.3图片放大与缩小功能的设计

本设计可以在任意状态下对图片进行缩小,同时能保证缩小的图片还位居相册的中间位置,在图片非全屏模式与全屏模式两种情况下都可以。图片放大的部分程序代码:

void Photo::zoomin() {

m_rect.setWidth(m_rect.width() ⁃ m_rect.width()/100);

m_rect.setX((rect().width() ⁃ m_rect.width()) / 2);

m_rect.setHeight(m_rect.height() ⁃ m_rect.height()/100);

m_rect.setY((rect().height() ⁃ m_rect.height()) / 2);

m_slider⁃>setValue(m_slider⁃>value()⁃1);

update();}

2.4循环显示图片功能设计

通过循环模式播放选中的图片,可以使用户很方便地进行照片的选择,节约时间。本设计通过下列代码实现了幻灯片循环播放的功能:

loop = new QAction(Qicon

(":/images/loop.png"),"loop", this); //幻灯片循环

loop⁃>setEnabled(false);

connect(loop, SIGNAL(triggered()), this, SLOT(slotStart()));

QAction *stoploop = new QAction(QIcon(":/images/stop.png"), "pause", this);

connect(stoploop, SIGNAL(triggered()), this, SLOT(slotstop()));

3结语

嵌入式技术的快速发展,使得嵌入式产品已深入人们生活,电子相册的出现打破了传统相册不易保存、浏览等问题。本文采用嵌入式Qt技术,C++语言编程设计了一款电子相册,可以实现图片加载、浏览、放大与缩小等基本功能。该设计方案具有低耦合、高内聚、可扩展、操作简单等良好特点。下一步需要完善的是对图片按要求裁剪、插入文字、加边框等图片编辑功能的设计。

参考文献

[1] 袁媛,王延红,江凌,等.基于Qt及OpenCASCADE的建模技术研究[J].现代电子技术,2013,36(10):74⁃77.

[2] 史桂红.XML及GDI+在便携式电子相册中的应用[J].计算机系统应用,2013,22(3):161⁃165.

[3] 程博.基于嵌入式Qt的数字机顶盒图形界面设计与实现[J].计算机应用,2009(11):45⁃46.

[4] 赵鹏.基于嵌入式Linux的MP3播放器的设计与实现[J].现代计算机,2011(3):111⁃112.

[5] 蔡志明.精通Qt4编程[M].2版.北京:电子工业出版社,2011.

[6] 李艳民.基于Qt跨平台的人机交互界面的研究和应用[D].重庆:重庆大学,2007.

[7] 李亚锋,欧文盛.嵌入式系统开发从入门到精通[M].北京:清华大学出版社,2007.

[8] 衰野,王宏远.一种嵌入式系统中GUI的设计[J].计算机与数字工程,2006(1):9⁃11.

[9] 袁媛,王延红,江凌,等.C++类库Qt在数值模拟软件开发中的应用[J].现代电子技术,2010,33(2):80⁃83.

[10] 谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006.

[11] BLANCHETTE Jasmin, SUMMERFIELD Mark. C++ GUI Programming with Qt4 [M]. 2版.北京:电子工业出版社,2008.

上一篇:基于知识图谱的国内图书馆隐性知识研究现状及... 下一篇:关于对高碳钢丝生产中的失效分析