基于QT的图像格式转换器设计与实现毕业论文.doc

上传人:来看看 文档编号:3921437 上传时间:2019-10-10 格式:DOC 页数:58 大小:998KB
返回 下载 相关 举报
基于QT的图像格式转换器设计与实现毕业论文.doc_第1页
第1页 / 共58页
基于QT的图像格式转换器设计与实现毕业论文.doc_第2页
第2页 / 共58页
基于QT的图像格式转换器设计与实现毕业论文.doc_第3页
第3页 / 共58页
基于QT的图像格式转换器设计与实现毕业论文.doc_第4页
第4页 / 共58页
基于QT的图像格式转换器设计与实现毕业论文.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《基于QT的图像格式转换器设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于QT的图像格式转换器设计与实现毕业论文.doc(58页珍藏版)》请在三一文库上搜索。

1、北京邮电大学毕业设计 i 基于 QT 的图像格式转换器设计与实现 摘 要 在 linux,windows 不同平台,利用 QT 开发工具,实现了对本地图像进行格式转 化功能。设计的图像转化软件,具备了一些基本的图像操作,包括查看图片、放大图 片、缩小图片、前一张、后一张、图像转化和新建截图等功能。利用 QT 实现代码复用。 使得该软件操作简便,界面整洁。 在 Linux 系统嵌入式环境下基于 QT 的图像转化设计更具有实用价值。本设计是在 Linux 和 windows 下使用 QT 技术进行 GUI 设计,利用 QTCreator 软件编程实现一个图 形界面,完成一个简单的图像转化的设计。该

2、设计基于 QT 集成开发环境,利用系统的 函数接口来编程、具有体积小、支持的格式多、系统占用资源少、支持各种常用格式 的转化等功能,还可以实现代码复用,实现跨平台的效果。 此次开发设计在 Windows 7 系统 和 Ubuntu12.04 下,以 C+为开发语言,在 Qt 4.7.4 开发平台上。通过对其开发,深入了解 QT 开发软件的流程和其强大功能,为后 来使用者起借鉴作用。 关键词:不同平台;图形用户界面;QT;代码复用 北京邮电大学毕业设计 ii Design and implementation of image format converter based on QT ABSTR

3、ACT In Linux, windows platform, using QT development tools, implementation of the native image format conversion function. Image conversion software design, has some of the basic operation of the image, including view pictures, enlarge, narrow, a picture before, after a, image transformation and new

4、 screenshots and other functions. Reuse code by using QT. The software is easy to operate, clean interface. In the embedded Linux system environment design of image transformation based on QT and has more practical value. This design is a GUI design using QT technology in Linux and windows, the real

5、ization of a graphical interface using QTCreator software programming, to complete a simple image transforming design. The design of the QT integrated development environment based on, programming, has the advantages of small volume, support playback function format conversion, the system takes fewe

6、r resources, support a variety of commonly used format using the function interface system and Can also achieve code reuse, to achieve cross platform effect. The development of design in the Windows 7 system and Ubuntu12.04, which is developed by C+ language, in the Qt 4.7.4 development platform. Th

7、rough its development, in-depth understanding of QT software development process and its powerful functions for later reference, user. Keywords: different platform; graphic user interface; QT; code reuse 北京邮电大学毕业设计 iii 目 录 摘 要i Abstract.ii 1 绪 论1 1.1 课题背景.1 1.2 课题研究的目的及意义.3 1.3 嵌入式的现状和前景.3 1.4 QT 的历

8、史和最新发展 5 2 QT 开发软件的架构和简介 .7 2.1 QT 的特点与组成 7 2.2 QT 开发机制简介 9 3 QT 图像格式转化的设计和实现 12 3.1 系统架构分析设计12 3.1.1 需求分析设计 12 3.1.2 界面的设计与分析13 3.1.3 软件结构设计 15 3.2 程序的实现19 3.2.1 使用 QT 建立 GUI 开发.19 3.2.2 算法设计和具体功能22 4 测试环节.31 4.1 QT CREATOR 进行调试.31 4.2 WIN7 和 UBUNTU12.04 平台测试 .32 5 总 结35 参考文献.36 致谢.37 外文资料.38 对应中文翻

9、译.49 北京邮电大学毕业设计 1 1 1 绪绪 论论 1.1 课题背景课题背景 今天我们所处的环境信息化发达、计算机网络遍布全球。离开了嵌入式的发展是 不可能谈及网络的,这些年来,嵌入式产品发展出多种多样。这就不仅要求其茶品有 强大的网络支持功能,还要有低成本、美观的图形界面。而在 Linux、Windows 等操 作系统上具有完备功能的图形设计开发软件成为解决问题的好方案。 目前,嵌入式系统是在一个快速发展的时代,激烈的竞争,这种竞争和发展在未 来几年将继续发展和激烈。嵌入式系统市场和技术的发展很快,国外技术发展的步伐 更加成熟,市场基本形成。国内的发展速度也很快,市场有很大的潜力。在国外

10、的一 些发达国家,高水平的硬件,尤其是在嵌入式 CPU 的处理能力上,从原来的 8 位到 16 位再到 32 位,发展速度很快。掌上电脑、智能设备等新产品的涌入市场,使得产 业规模进一步扩大和发展。国内的嵌入式硬件需求基本是靠进口来满足,技术相对较 弱。但是,如今国内外都有自己推出的嵌入式系统,都在为自己在这个产业争取一份 额而努力。而其中 Linux 以其公开的系统内核源代码而得到广泛的重视和使用,发展 前景非常乐观。在国内,大型的嵌入式系统非常少,今后的开发重点可能转向基于 Internet 的各种信息和嵌入式操作系统领域,包括 Internet、网上交易、Iphone 和平板 电脑等。

11、目前在开发 GUI 时也会有很多种选择,但是有很少软件可以实现一套代码在几乎 不用修改代码便可支持多个操作系统编译。如果不能实现复用代码,要想在另一个系 统上实现同样功能,只能舍弃原来的开发代码,进行重新开发。这样会消耗大量的人 力和财力,使得原本很成熟的开发成果因此被遗弃。QT 在开发时解决了这个问题, 我们只需要在不同环境下安装好 QT,并把开发好的代码编译一次便可以运行,极大 的提高了开发效率,在维护时也方便很多。它还可以发挥每个不同平台的优势,只需 引入相应的系统中头文件即可。 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于 应用系统对功能、可靠性、成本、体积、

12、功耗有严格要求的专用计算机系统。它一般 由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分 组成,用于实现对其他设备的控制、监视或管理等功能。 嵌入式系统一般指非 PC 系统,它包括硬件和软件两部分。硬件包括处理器微 处理器、存储器及外设器件和 IO 端口、图形控制器等。软件部分包括操作系统软件 (OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合 在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件 的交 互作用。嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般就具备以下 4 个特点: 1)对实时多任务有很强的支持能力

13、,能完成多任务并且有较短的中断响应时 间,从而使内部的代码和实时内核心的执行时间减少到最低限度。 2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块 化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功 能,同时也有利于软件诊断。 北京邮电大学毕业设计 2 3)可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式 微处理器。 4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和 通信设备中靠电池供电的嵌入式。 系统更是如此,如需要功耗只有 mW 甚至 W 级。 嵌入式计算机系统同通用型计算机系统相比具有以下特点: 1.嵌入式系

14、统通常是面向特定应用的嵌入式 CPU 与通用型的最大不同就是嵌入式 CPU 大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度 高等特点,能够把通用 CPU 中许多由板卡完成的任务集成在芯片内部,从而有利于嵌 入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。 2.嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体 应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、 不断创新的知识集成系统。 3.嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在 同样的硅片面积上实现更高的性能,这样才能在具体应

15、用中对处理器的选择更具有竞 争力。 4.嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步 进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 5.为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯 片或单片机本身中,而不是存贮于磁盘等载体中。 6.嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对 其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。 要说嵌入式行业,就要先从嵌入式系统和软件说起。嵌入式系统和软件是指嵌入 在硬件中的非 PC 操作系统和开发工具软件,分为嵌入式操作系统、嵌入式支撑软件、 嵌入式应用软件,

16、被称为“驱动系统的灵魂。 Qt 是 1991 年奇趣科技公司开发的一款跨平台的 C+图形用户界面应用程序框架。 它不仅可以开发 GUI 程序,也可开发非 GUI 程序,比如控制台工具程序和服务器端程 序。Qt 是基于 C+语言的面向对象框架,使用特殊的代码生成扩展以及一些宏,易于 扩展,允许组件编程。2008 年,奇趣科技被诺基亚公司收购,QT 也因此成为诺基亚 旗下的编程语言工具。2012 年,Qt 被 Digia 收购。2014 年 4 月,跨平台集成开发环境 Qt Creator 3.1.0 正式发布,实现了对于 iOS 的完全支持,新增 Beautifier、WinRT 等插 件,废弃

17、了无 Python 接口的 GDB 调试支持,集成了基于 Clang 的 C/C+代码模块, 并对 Android 支持做出了调整,至此实现了全面支持 Android 、iOS、WP。 Qt 良好的封装机制使得 Qt 的模块化程度非常高,代码可重用性较好,对于用户 开发来说是非常方便。 Qt 还提供了一种称为 signals/slots 的安全类型来代替 callback,这 Qt creator 是全 新的跨平台集成开发环境,为 QT 开发人员的需求量身定制,由于捆绑了最新 QT 库 二进制软件包和附加的开发工具,并作为 QT SDK 的一部分,Qt creator 在单独的安装 程序内提供

18、了进行跨平台 QT 开发所需的全部工具。Qt creator 主要是为了帮助新 QT 用户更快速入门并运行项目,还可提高有经验的 QT 开发人员的工作效率。使得各个 元件 之间的协同工作变得十分简单。 北京邮电大学毕业设计 3 因此,学习 QT 开发软件无论对于开发普通软件人员还是嵌入式开发者都是十分 必要的,它还有重要的商业和研究价值,或许不久的将来便可在图形界面开发软件独 居榜首。 1.2 课题研究的目的及意义课题研究的目的及意义 随着科学技术的进步,我们的社会越来越丰富多彩,图像的种类也越来越多。在 信息技术发展的今天,人类对于图像的依赖也越来越高。米歇尔列举的有“电脑辅助 设计、合成全

19、息照相、飞行模拟器、电脑动画、机器人图像识别、射线跟踪、文本图 绘、运动控制、虚拟环境防护、磁共振成像、以及多谱感应器等”。 对于图像的定位,在社会发展的过程中,发生了翻天覆地的变化。以前的图像, 可能是物的附属,或者是价值的附属,都无法按照意指的规则,进行排列组合和格式 转化。 Qt 具有丰富的 API 包括多达 250 个以上的 C+ 类还提供基于模板的 file、collections、 I/O device、serialization、directory management、date/time 类。甚至 还包括正则表达式的处理功能。 Qt 是诺基亚开发的一个跨平台的 C+图形用户界面

20、应用程序框架。它提供给应用 程开发者建立艺术级的图形用户界面所需的所有功能。Qt 是完全面向对象的,很容易 扩展,并且允许真正地组件编程,自从 1996 年早些时候,Qt 进入商业领域,他已经 称为全世界范围内数千种成功的应用程序的基础,Qt 也是流行的 LINUX 桌面环境 KED 的基础。基本上,Qt 同 XWINDOW 上的 Motif,OPENWIN,GTK 等图形界面 库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但 Qt 具有优良的跨 平台性、面向对象,丰富的 API、大量的开发文档等优点。 QtCreator 是跨平台的 QtIDE,QtCrea

21、tor 是 Qt 被 Nokia 收购后推出的一款新的轻 量级集成开发环境(IDE)此 IDE 能够跨平台运行,支持的系统包括 Linux(32 位及 64 位)、MacOSX 以及 Windows。根据官方描述,QtCreator 的设计目标是使开发人 员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务。 在功能方面,Qt Creator 包括项目生成向导、高级的 C+ 代码编辑器、浏览文件 及类的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前 端,集成 QMAKE 构建工具等。 尤其是我们在制作软件和网页时候,需

22、要各种各样的不同格式的图片进行装饰, 不可能使用单一的图片格式满足用户的所有需求。这时有一款图像转化软件可以满足 市场和开发人员的需要。在嵌入式发展飞速的今天,更需要有一款软件可以随时随地 的对图像进行处理。特别是在 Linux 环境下,图形化软件特别少,需要一个可以方便 使用和操作的有图形界面的软件。Qt 可以实现在 windows 和 linux 一次编译多次运行, 是市场发展的好趋势。所以今天做一个图形转化程序来验证 Qt 的良好的实现代码机制 和强大的跨平台功能。服务业创造价值,而体验业创造意义。在服务中创造更好的用 户体验,可以提升用户价值。 Qt 包括一套集成的开发工具,可加快在

23、X11 平台上的开发。Qt 由于是 KDE 桌面环境的基础,在各个 Linux 社区人尽皆知。几乎 KDE 中的所有功能都是基于 Qt 开发的, 而且 Qt 是全球社区成员用来开发 成千上万的开源 KDE 应用程序的基 础。 本文运用 QT 技术在 Linux 下进行 GUI 设计,以一个图形界面为例,运用 QT creator 软件编程,实现一个图像转化软件。 北京邮电大学毕业设计 4 1.3 嵌入式的现状和前景嵌入式的现状和前景 嵌入式的现状和前景在未来嵌入式应用软件的开发不仅需要操作系统的支持开发 工具而且还需要的强大的开发工具的支持,伴随计算机网络技术的成熟和发展,以及 带宽的提高,I

24、CP 和 ASP 在网上提供的信息内容日趋丰富、应用项目多种多样。像智 能手机、平板电脑及冰箱,智能家居等嵌入式电子设备的功能不再单一,其结构也更 为复杂。为了满足更多应用功能的快速升级,设计师们一方面采用更为先进的嵌入式 处理器如 32 位、64 位 RISC 芯片或者信号 DSP 处理器增强其处理能力;同时还采用 多任务的、实时的编程技术和交叉开发工具技术来控制程序实现的功能复杂性,此外 还要简化应用程序设计、保障软件的质量和尽量缩短开发软件的周期。 (1)联网成为嵌入式发展的必然趋势 为了更好的适应嵌入式分布处理的结构和网络应用上的需求,面向新一代的嵌入 式系统要求配备标准的一种或多种网

25、络通信接口才能与之相适应。对于外部联网要求, 嵌入设备必需配有通信接口,同时需要 TCPIP 协议软件支持;同时也需要提供相应的 通信网协议软件和物理层驱动软件。为了支持应用软件的特定的编程模式,还需要相 应的浏览器和网页支持技术的开发与发展。 (2)支持小型电子设备、实现小尺寸、微功耗以及低成本 为满足这种特性,使得嵌入式产品设计在一定程度降低处理器的性能,限制一定 的内存容量和复用接口芯片。这就相应提高了对嵌入式软件设计技术要求。 (3)提供精巧的多媒体人机界面 嵌入式设备以后一定会让亿万用户乐于接受,最重要原因之一是它们与使用者之 间很强的亲和力,随和的人机交互界面,人们与信息终端交互要

26、求以 GUI 屏幕为中心 的多媒体界面。智能终端产品技术已经非常成熟,如 iphone、ipad、Andriod 产品、 MP3、MP4 等等。 以 Linux 为代表的自由软件开始占领比较大的市场,据统计,linux 占北美 PC 服 务器 25%左右的市场份额,打破了微软 Windows 一统天下的局面,国内也迅速跟进, 开发了红旗 Linux 等。嵌入式操作系统及其开发平台的市场被普及计算(Pervasive Computing)概念所驱动,发展更为迅速,著名的产品有美国加州的集成系统公司 (Integrated Systems Inc)推出的 psosystem,占领了极大的市场份额。

27、国内九五期间, 由中科院推促并产业化的 Hopen 嵌入式系统,被列为国家科技攻关项目。基于 Linux 技术的嵌入式操作系统也已经推出。根据美国 VDC(Venture Development Co.)统计数据 显示,嵌入式 linux 的市场规模从 2001 年的 5520 万美元,到 2006 年增长到了 3.46 亿 美元,在未来两年将占嵌入式操作系统市场份额的 50%。 现今,与嵌入式应用相结合的嵌入式操作系统有 VxWorks、Linux、WinCE、 COS-II 等,他们各有其特点,VxWorks 的特点是可靠性,实时性,可裁剪性, 相比 较而言,WINCE 是多线性、多任务、

28、全优先的操作系统,是专门针对资源有限而设计, COS-II 则是一个基于优先级的实时操作系统,每一个任务必须具有不同的优先级,如 果优先级相同,任务将无法区分。而嵌入式 Linux 更具有优势。归纳起来,嵌入式 Linux 至少具有以下优势: (1)开放的源码,丰富的软件资源 Linux 是自由的操作系统,它的开放源码使用 户获得了最大的自由度。Linux 上的软件资源十分丰富,每一种通用程序在 Linux 上都 可以找到。 北京邮电大学毕业设计 5 (2)功能强大的内核,性能高效、稳定,多任务 Linux 的内核非常稳定,它的高 效和稳定性已经在各个领域,尤其在网络服务器领域,得到了事实的验

29、证。Linux 内 核小巧灵活,易于裁减,这使得它很适合嵌入式系统的应用。 (3)支持多种体系结构,如 X86、ARM、MIPS、ALPHA、SPARC 等 目前,Linux 已经被移植到数十种硬件平台上,几乎支持所有流行的 CPU。 (4)完善的网络通讯、图形、文件管理机制 Linux 自产生之日起就与网络密不可 分,网络是 Linux 的强项。另外,Linux 还支持多种文件和图形系统。 (5)支持大量的周边硬件设备 Linux 上的驱动已经非常丰富了,它们支持各种主 流硬件设备和最新硬件技术。 (6)大小、功能都可定制 Linux 秉承 Unix 的优秀设计思想,非常灵活,各部分 的可定

30、制性都很强。 (7)良好的开发环境,不断发展的开发工具集 Linux 有着非常优秀的完整开发工 具链,有十几种集成开发环境,其中很多是免费的,大大降低了开发费用。 鉴于嵌入式技术的广阔发展前景,技术的推广与普及工作受到了越来越广泛的关。 我们要抓住机遇、迎接挑战,在嵌入式发展行业中抢占市场先机,需要所有人共同的 努力! 1.4 QT 的历史和最新发展的历史和最新发展 Qt 提供给应用程序开发者建立艺术级别的图形用户界面所需的所有功能。Qt 很容 易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif、GTK Openwin,等图形界面库和 Windows 平台上的

31、 MFC,OWL,VCL,ATL 是同类型 的东西。 Qt 4.6 首次包含了对 Symbian 平台的支持,并在其所支持的平台中新增了 Windows 7、Apple Mac OS 10.6 (雪豹) 和即将上市的 Maemo 6。此外还为实时操作系 统 QNX 和 VxWorks 提供了网络社区支持。对 Maemo 5 的支持已进入研发阶段,其 技术预览版第二版于 2009 年 12 月 1 日发布。Qt 对 X11 、X86 、ARM 及 Symbian 的支持首次为开发人员创造了使用同一代码库同时针对这多个平台进行开发的机会。 能够跨平台分享代码就意味着开发人员所开发的应用程序上市的速

32、度将更快,影响的 设备用户群将更广。Qt Mobility 项目下的全新 Qt API 技术预览版也同时发布。这些跨 平台的 API 为开发人员提供了多种功能,如导航类设备的定位功能,以及信息发送和 接收、联系人和网络连接管理等。性能提升主要包括:一个经过高度优化、重新编写 的 Qt GraphicsView 渲染算法、一个全新的 OpenGL 绘图引擎、WebKit、使用 OpenVG 对 2D 矢量图形的支持,以及对全新 DirectFB 的支持。 2013 年 7 月 3 日,Qt 5.1 正式版发布了,这是 Qt 5.0 发布后经过 6 个月的开发 而测试的新版本。主要是修复 5.0

33、中的 bug,但该版本还包含了很多新特性和一些小 改进,详细内容请看 Qt 5.1 launch page。 Qt 5.1 绑定了 Qt Creator 2.7.2,可通过一个新的在线安装器来安装,可自动的无 缝的更新,同时也提供了一个新版本的 Visual Studio 插件。 最新的 QT 可以支持 MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vista、Win7、win8、win2008、Unix/X11 - Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS 和其它

34、很多 X11 平台。添加了更多 的功能。市场上的极品飞车和 office WPS,Google 地球等一些大家熟悉的软件,Qt 发 北京邮电大学毕业设计 6 展前景很好,也非常容易入手,做出自己喜欢的软件。在开发上可以降低成本,有很 广的市场发展前景。 (1)跨平台特性,避免重复造车轮 写一次源代码,能在不同的系统平台下编译,这个功能很强大,目前,还没有什 么软件与它相比。有人说 flex build 可以跨平台,那么,二者效率不可同日而语,Qt 的效率还是不错的。 使用 Qt 这么长时间,如果项目中使用的类不是第三方的,所开发的程序能完美在 不同系统,不同体系的平台上运行。如一个监控项目,所

35、开发的程序,除了引用第三 方的串口类以外,其它源码不用改动,就可以在不同的平台下编译。即便是第三方的 串口类,只是修改了一个条件编译参数,仅此而已。 (2)QT 本身优良的机制,使用面向组件编程。 面向组件的编程,是相对于面向过程和对象编程来说的,面向组件编程更具有优 势,什么是面向组件编程呢?打个比方,如果你要建设一个房子,有很多方式,假如 建筑材料是砖,水泥,沙子,大梁,楼板等。建造房子时,我们在地基上,必须先拌 水泥和沙子,然后把砖一块块地垒成墙,再上大梁,然后铺上楼板,这就是一个面向 过程的编程。 面积组件的编程就是,建筑材料是做好的一面面墙,屋顶,建成房屋时只需把墙 和屋顶组合起来就

36、行了。面向组件的编程是用别人做好的代码块,拿过来直接用,所 以编程优势比较明显。 QT 的类库十分丰富,有几千个不同的 API,也就是方法,只要你熟悉这些 API 的 参数用法,就可以直接拿过来用,像连接数据库,QT 已经写好常见的数据库操作方 法,使用时,不需要再编写,只需要拿过来,直接用就好了。 (3)把精力放在核心功能的实现上,而不是源码本身。 QT 使用了面向组件的编程机制,所利用 Qt 编程时,能解放出程序员的编码工作 量,所以,程序员把精力放在业务的实现就可以了。利用前人的源码,直接实现自己 要做的业务。 使用 QT 编程确实大大提高工作效率,并且代码质量也很高,因为调用的方法大

37、都很成熟,这就是编程的微妙之处。 (4)能构造出艺术级的界面,设计界面方便。 QT 设计界面非常精巧,能用源码直接描述,效率很高。在设计界面时,因为有 了布局这个概念,设计界面时,大大提高了设计效率。不像 VS,写个界面很死板。也 许有人说,我可以用界面设计师呀!但不要忽略效率。 北京邮电大学毕业设计 7 2 2 QTQT 开发软件的架构和简介开发软件的架构和简介 2.1 QT 的特点与组成的特点与组成 Qt 是由一个强大的跨平台开发架构组成的,它提供了大量的容器类,实现了平台 无关性的一大特点。Qt 中有一个核心类库,它是 QT 的核心,Qt 中所有的应用程序中 用到的类都是由此继承而来,这

38、个核心类 QtCore。 Qt 常用的一些类和方法(本次设计用到) QChar 表示的是一个字符的类,在核心 QtCore 之中。它中有很多常用到的方法, 比如, QChar(); / 构造一个空字符,即0 QChar(char ch); / 由字符数据 ch 构造 QChar(uchar ch); / 由无符号字符数据 ch 构造 QChar(ushort code); / 由无符号短整形数据 code 构造,code 是 Unicode 编码 QChar(short code); /由 短整形数据 code 构造,code 是 Unicode 编码 QChar(uint code); /

39、由无符号整型数据 code 构造,code 是 Unicode 编码 QChar(int code); / 由整型数据 code 构造,code 是 Unicode 编码 实际使用时很少直接构造 QChar 类的对象,而是把这些构造函数当做类型转换 来用,让编译器自动构造所需的 QChar 类对象。也就是说,在所有需要 QChar 类作为 参数的地方都可以安全地使用各种整数类型。 QChar 类提供了很多成员函数,可以对字符的类型进行判断,如: bool isDigit() const; / 判断是否是十进制数字(0 - 9) bool isLetter() const; / 判断是否是字母

40、bool isNumber() const; / 判断是否是数字,包括正负号、小数点等 bool isLetterOrNumber(); / 判断是否是字母或数字 bool isLower() const; / 判断是否是小写字母 bool isUpper() const; / 判断是否是大写字母 QString 类提供了很多函数用于将字符串转换为数值 QString / 整型数 QString / 无符号整型数 QString / 长整型 QString / 无符号长整型数 QString / 短整型数 QString / 无符号短整型数 QString / 高精度浮点数 QString /

41、 浮点数 将浮点数转换为字符串时,format 参数指定转化格式,precision 参数指定转换结 果的精度,既有效数组的个数。注意这些函数会改变 QString 对象本身的值,而以下 的函数则采用了不同的做法,它们返回一个新的临时对象以供使用 QPorint 代表一个坐标点,从属于QtCore库,可以认为是一个整型的横坐标和一个 整型的纵坐标的组合,常用的方法包括,构造宽度为width,高度为height的QSize对象。 北京邮电大学毕业设计 8 QPoint 类支持以下两种构造方式: QPoint(); / 构造横纵坐标均为 0 的 QPoint 对象 QPoint(int x, in

42、t y); / 构造横纵坐标分别为 x 和 y 的 QPont 对象 QPoint(); / 构造横纵坐标均为 0 的 QPoint 对象 QPoint(int x, int y); / 构造横纵坐标分别为 x 和 y 的 QPont 对象 通过以下成员函数可得到 QPoint 对象中的横纵坐标的引用: int / 得到横坐标的引用 int / 到到纵坐标的引用 int / 得到横坐标的引用 int / 到到纵坐标的引用 注意这些引用都不是只读的,也就是说可以通过它们直接修改 QPoint。 QSize(int width, int height); QFont 代表字体,在QtGui库中实现

43、,可以利用其中方法设置字体属性。 QPixmap 代表图像, 也是在QtGui库中实现。可以设置图像参数,加载和保存图 像。 QPixmap: 代表图像,实现在 QtGui 库中构造: QPixmap();/构造大小为 0 的空图像 QPixmap(const QSize /构造大小为 size 的图像,图像数据未初始化 QPixmap(int width, int height);/等价于 QPixmap(QSize(width, height); QPixmap(const QString /从指定的文件中加载图像并生成 QPixmap 对象 /fileName:文件名 format:字符

44、串,表示图像文件的格式,如果为 0,将进行自动识别. .flags:表示颜色的转换模式 图像参数: int depth() const;/颜色深度,即每像素所占的 byte(比特)数 int width() const;/图像宽度,单位是像素 int height() const;/图像高度,单机是像素 QSize size() const;/图像的大小,即 QSize(width(), height(); QRect rect() const;/图像的矩形区域,即 QRect(QPoint(0,0), size(); 加载和保存图像: bool load(const QString /从文件

45、中加载图像,返回 true 表示加载成功,false 则表示加载失败 bool save(const QString /将图像保存到文件, fileName:文件名. format:字符串,表示图像文件的格式,如果 为 0,自动确定. quality:表示图像保存的质量,质量越低压缩率越大,越不清晰,取值范围 为 0100,-1 表示采用默认值. QIcon 代表图标, 在实现QtGui库中,是一系列图像的组合,每个图像代表窗口在 某种状态下应该显示的图标。可以构造和添加图像 构造: QIcon();/构造一个空图像构成的图标 QIcon(const QPixmap /从QPixmap对象构造

46、图标,此时系统会自动产 生窗口不同状态下对应的图像,比如窗口在禁用状态下其图标为灰色 北京邮电大学毕业设计 9 QIcon(const QString /从图像文件构造图标,此时,文件并不是立 刻加载,而是当图标要显示时才加载 添加图像: void addFile(const /fileName:文件名 size:指定大小mode:指定使用模式,即窗口在何种状态下 使用这个图像state:指定使用状态 /Mode为QIcon类的成员类型,有以下取值. QIcon:Normal:窗口为使能状态,但 未激活 QIcon:Disabled:窗口为禁用状态 QIcon:Active:窗口为激活状态 Q

47、Icon:Selected:窗口被选中 /QIcon:Off:窗口在关状态 QIcon:On:窗口在开状态 QWidget 代表一般的窗口,也是在实现QtGui库中实现的,包含各种各样的窗口, 可以设置其隐蔽性,可见性,窗口特征等待。 QDialog 对话框设置,QDialog:代表对话框,用来实现那些只是暂时存在的用户 界面,是独立的窗口,但通常也有父窗口 对话框有模态和非模态两种,非模态对话框的行为和使用方法都类似于普通的窗 口,模态对话框则有所不同,当模态对话框显示时,其他窗口将全部进入非激活状态,不 能接受键盘和鼠标事件,模态的方式又可分为两种,一种是对整个应用程序模态,这时它 的出现

48、将导致程序中的所有窗口失去响应;另一种是对窗口模态,这时仅仅会导致它所 在的整个窗口树失去响应它只是表示暂时存在的用户界面,包含模态与非模态两种。 另外还有QLabel、QAbstractButton: QPushButton,QCheckBox: QRadioButton:等一 些界面显示类,这里不做赘述。 2.2 QT 开发机制简介开发机制简介 信号与槽机制是 QT 开发时用到的的核心机制。信号和插槽是一种高级接口,应用 于对象与对象之间的接口通信,它是 QT 最常用到的功能,也是 QT 开发软件区别于其 他开发工具的关键。信号和插槽技术是 QT 自行定义的一种通信机制,它独立于标准的 C

49、/C+语言,要想正确地处理信号和插槽,必须借助一个称为 MOC(Metia Object Compiler)的 QT 工具,该工具可以对 C+程序进行预处理,同时为高层次的事件处理 自动生成所需要的附加代码。 Qt 的槽信号机制可以实现多个信号与单个插槽连接,单个信号与很多插槽也可以 连接,甚至将一个信号与另外一个信号相连接也是可以实现的的,这时无论第一个信 号什么时候发射,系统都将立刻发射第二个信号。总之,信号与插槽组成了一个强大 的连锁编程机制。 在我们所熟知的很多 GUI 工具包中,窗口小部件(widget)都有一个回调函数,用 于响应它们能触发的每个动作,回调函数,通常是一个指向某个函数的指针。但是, 在 QT 中信号和槽机制的开发模式取代了这些凌乱的函数指针,使得我们编写这些通信 程序更为简洁明了。信号和槽机制能携带任意数量和任意类型的参数,他们是类型完 全安全的,不会像回调函数那样产生 core dumps。 所有从 QObject 或其子类(例如 QWi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1