收藏 分享(赏)

基于嵌入式画图板的设计与实现.doc

上传人:wspkg9802 文档编号:6359627 上传时间:2019-04-09 格式:DOC 页数:40 大小:2.50MB
下载 相关 举报
基于嵌入式画图板的设计与实现.doc_第1页
第1页 / 共40页
基于嵌入式画图板的设计与实现.doc_第2页
第2页 / 共40页
基于嵌入式画图板的设计与实现.doc_第3页
第3页 / 共40页
基于嵌入式画图板的设计与实现.doc_第4页
第4页 / 共40页
基于嵌入式画图板的设计与实现.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、济源职业技术学院毕 业 设 计(论文)题目 基于嵌入式画图板的设计与实现 系别 信息工程系 专业 班级 姓名 学号 指导教师 日期 二零一二年九月 2基于嵌入式 Qt 的画图板设计与实现画图板总计:毕业设计(论文)39 页图表 35 幅I摘 要随着数字信息技术和网路技术的高速发展,嵌入式系统已经广泛的参透到各行各业以及人们的日常生活中,嵌入式系统技术已经成为目前最热门的技术之一。嵌入式系统硬件平台的核心是嵌入式微处理器,ARM 处理器以其小体积、高性能、低成本、低消耗的优势成为目前应用最广泛的 32 位高性能嵌入式 RISC 处理器。在工业控制、移动通信、多媒体数字消费、手持设备等嵌入式解决方

2、案中据着非常重要的地位。本文以嵌入式技术的需求为背景,提出了一种适用于嵌入式系统的画图板设计方案,在此基础上设计并实现了基于 Linux/Qt 的嵌入式 Qt 画图板,实现了基于 Qt的嵌入式画图板系统。本文的目标是设计和实现嵌入式终端下的画图板。论文首先介绍了 Linux 的优点和 QT 开发环境的搭建,着重分析了 QT 在软件开发中的编程机制,并具体分析了画图板具体界面的设计,最后简要介绍了嵌入式应用的特点和嵌入式终端下的移植过程。本文根据画图板的主要功能,设计并实现了画图板的相关基本功能,如:新建、打开、退出、放大、缩小、还原、旋转和拉伸等。最后运行结果符合设计要求,方案可行。关 键 词

3、 : 嵌入式操作系统;Linux;QT ;图形用户界面;画图板IIABSTRACTWith the development of digital information technology and network technology rapid development, the embedded system has widely penetrated into all walks of life and peoples daily life, the embedded system technology has become the most popular one.Embedded s

4、ystem hardware platform is the core of the embedded microprocessor, ARM processor with its small size, high performance, low cost, low consumption of advantage to become the most widely used high performance 32 bit embedded RISC processor. In industrial control, mobile communication, multimedia digi

5、tal consumer, handheld devices and embedded solutions according to a very important position.Based on the embedded technology demand as a background, put forward a kind of embedded system applicable to the drawing board design, on the basis of the design and implementation of Linux/Qt based embedded

6、 Qt drawing board, based on the realization of the embedded Qt drawing board system.The goal of this paper is to design and Realization of embedded terminal drawing board. The paper first introduces the advantages of Linux and QT development environment to build, focuses on the analysis of QT in the

7、 development of software programming, and specific analysis of the drawing board and the specific interface design, and finally introduced the embedded application and the characteristics of embedded terminal under the transplantation process. According to the drawing board to the main function, the

8、 design and implementation of drawing board related basic functions, such as: the new, open, exit, amplification, narrow, reduction, rotation and stretching. The final results meet the design requirements, the scheme is feasible.Key words: embedded operating system; Linux; QT; graphical user interfa

9、ce; drawing boardIII目 录第 1 章 引言 .- 1 -1.1 研究背景 .- 1 -1.2 研究目的和意义 .- 2 -第 2 章 嵌入式操作系统 .- 3 -2.1 嵌入式系统概述 .- 3 -2.2 嵌入式操作系统 .- 4 -2.2.1 嵌入式系统特征 .- 4 -2.2.2 常见嵌入式 Linux 系统优缺点 - 5 -第 3 章 基于嵌入式 Qt 画图板的硬件平台搭建 .- 7 -3.1 ARM 微处理器 - 7 -3.1.2 ARM 微处理器的特点 - 7 -3.1.3 ARM 微处理器系列 - 7 -3.1.4 ARM9 微处理器系列介绍 - 7 -3.2

10、S3C2410 开发平台介绍 - 8 -3.2.1 S3C2410X 芯片介绍 .- 9 -第 4 章 基于嵌入式 Qt 画图板的软件介绍 .- 10 -4.1 QT 主要特性 - 10 -4.2 QT 编程机制简介 - 10 -4.2.1 QT 系统的信号与槽机制简介 - 10 -4.3 QT Creator 设计软件概述 .- 12 -第 5 章 基于嵌入式 QT 画图板的软件的设计 - 13 -5.1 画图板设计模块和功能介绍 .- 13 -5.2 画图板界面的设计 .- 14 -5.2.1 菜单的设计 .- 14 -5.2.2 添加绘图工具栏 .- 17 -5.3 画图板功能设计与实现

11、 .- 18 -5.3.1 实现文件菜单功能 .- 18 -5.3.2 画图板涂鸦功能的实现 .- 19 -5.3.3 实现编辑菜单功能 .- 21 -第 6 章 系统的测试 .- 24 -6.1 测试环境 .- 24 -6.2 硬件平台搭建测试 .- 24 -6.2.1 PC 端测试 - 24 -6.2.2 U-Boot 端测试 .- 24 -6.2.3 内核测试 .- 25 -6.2.4 根文件系统测试 .- 25 -6.2.5 网卡测试 .- 26 -IV6.3 PC 端软件测试 - 27 -6.3.1 界面测试 .- 27 -6.3.2 功能测试 .- 28 -6.4 综合测试 .-

12、28 -6.5 小结 .- 30 -第 7 章 总结与展望 .- 31 -致 谢 .- 32 -参 考 文 献 .- 33 -基于嵌入式 Qt 的画图板设计与实现- 1 -第 1 章 引言1.1 研究背景近年来,随着计算技术、通信技术的飞速发展,特别是互联网的迅速普及和3C(计算机、通信、消费电子)合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信息产业的主流。嵌入式产品的发展,往往要求嵌入式操作系统有网络和图形的功能。利用源代码开放的 Linux 搭建的嵌入式操作系统,由于强大的网络功能和低成本,近来得到了越来越多的应用。主要体现在以下几个方面 1。 嵌入式应用软件的开发需要强大的

13、开发工具和操作系统的支持随着因特网技术的成熟、带宽的提高,ICP 和 ASP 在网上提供的信息内容日趋丰富、应用项目多种多样。像电话手机、电话座机及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如 32 位、64 位 RISC 芯片或信号处理器 DSP 增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。 互联网成为必然趋势为适应嵌入式分布处理结构和应用上网需求,面向 21 世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要

14、求,嵌入设备必需配有通信接口,相应需要 TCPIP 协议簇软件支持;由于家用电器相互关联(如防盗报警,灯光能源控制,影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备 IEEE1394、USB 、CAN 、Bluetooth 或 IrDA 通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如 Web 或无线 Web 编程模式,还需要相应的浏览器,如HTML、WML 等。 支持小型电子设备实现小尺寸、微功耗和低成本为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片。这就相应提高了对嵌

15、入式软件设计技术要求。如,选用最佳的编程模型和不断改进算法。提供精巧的多媒体人机界面嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的济源职业技术学院毕业设计(论文)- 2 -亲和力,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆。人们与信息终端交互要求以 GUI 屏幕为中心的多媒体界面。手写文字输入、语音拨号上网,收发电子邮件以及彩色图形、图像已取得初步成效。1.2 研究目的和意义虽然市场上现在已经有了众多的优秀的 GUI 应用软件,但随着近年来计算机技术的迅速发展,当新硬件、新技术出现时,计算机的体系结构、指令系统和操作系统都可能发

16、生相应的改变,这势必会导致一部分应用软件在新环境下无法正常运行。如果舍弃原有软件而重新开发,将会耗费大量的人力和资金,而且浪费了许多成熟的软件成果。而 QT 在源代码级上实现了跨平台特性,极大的支持了跨平台通用软件的开发。QT 可以用同一个源程序在不同平台上编译链接,生成目标代码,并取得相同的运行效果,这种技术称之为“一次编写,随处编译” ,利用这种方法充分实现了程序的跨平台运行。这种基于源代码的跨平台特性不仅解决了性能的问题,而且可以发挥各个平台的优势,充分利用每个平台自身的特点;并且即可以在新环境下实现原有软件的功能和特点,减少开发费用,还可以改进原有软件的不足,增加新的需求,从而提高软件

17、的质量,延长软件生命期。针对嵌入式产品的高度个性化,其外观、与用户交互的界面千差万别的特点,故而系统的设计目标是意在打造一个能在嵌入式终端运行、通用的、可以方便的支持各种控件、各种图形格式,具有体积小、可裁剪、可移植的这样一个面向嵌入式的应用程序系统,使各种嵌入式设备也同样能具有美观的用户界面,相对比较丰富的功能,操作起来简单而又直观 2。本文通过对嵌入式 Linux 和 QT 的分析,在嵌入式 QT 的基础上,开发了面向嵌入式终端的画图板应用软件。画图板不仅支持新建、保存等功能,还支持图片的打开,另外还有如放大、缩小、旋转等各种方式下的图片浏览。它们体积小,移植方便,适用于掌上电脑、智能电话

18、及一些高端的嵌入式设备中。此外它作为一种小型GUI 解决方案,可用于那些对 GUI 大小要求苛刻的各种应用系统中。基于嵌入式 Qt 的画图板设计与实现- 3 -第 2 章 嵌入式操作系统 嵌入式系统,就是以应用为中心、以计算机技术为基础、软件硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。本章首先通过嵌入式系统选择对比,介绍了嵌入式系统的优缺点,最后根据系统方案要求重点叙述了选择的嵌入式 Ubuntu 操作系统。2.1 嵌入式系统概述综观嵌入式系统的发展,大致经历了三个阶段。第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、指示设备相配合的功能

19、。这种系统大部分应用于工业控制系统中,一般没有操作系统的支持。第二阶段以嵌入式实时操作系统为标志。这一阶段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API) ,嵌入式应用软件丰富,但与互联网无关。第三阶段是以基于因特网为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于因特网之外,但随着因特网的发展以及因特网技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与因特网的结合将代表着嵌入式技术

20、的真正未来 2。 Linux 是个和 Unix 相似,以 Unix 核心为基础、完全内存保护、多任务多进程的操作系统。其程式源码全部公开,任何人可以修改并在 GNU 通用公共许可证(GNU General Public License)下发行,这样开发人员可以对操作系统进行定制。同时由于有 GPL 的控制,大家开发的东西大都相互兼容,不会走向分裂之路。Linux 用户遇到问题时可以通过 Internet 向网上成千上万的 Linux 开发者请教,这使最困难的问题也有办法解决。Linux 带有 Unix 用户熟悉的完善的开发工具,几乎所有的 Unix 系统的应用软件都已移植到了 Linux 上。

21、Linux 还提供了强大的网络功能,有多种可选择窗口管理器(X windows) 。其强大的语言编译器 gcc、g+等也可以很容易得到。不但成熟完善、而且使用方便,为嵌入操作系统提供了一个极有吸引力的选择。济源职业技术学院毕业设计(论文)- 4 -Linux 已经被移植到多种硬件平台,这对受开销、时间限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发然后移植到具体的硬件上,加快了软件与硬件的开发过程。Linux 可以随意地配置,不需要任何的许可证或商家的合作关系。它是免费的,源代码可以得到。这是最吸引人的。毫无疑问,这会节省大量的开发费用 3。Linux 还有以下优点。 它本身内置网

22、络支持。 Linux 的高度模块化使添加部件非常容易。 Linux 在台式机上的成功,使大家看到了 Linux 在嵌入式系统中的辉煌前景。嵌入式产品中选择什么样的操作系统极为重要,嵌入式 Linux 由于其开源特性、实时性好、可移植、内置网络支持等优点在嵌入式领域成为主力军。如今,业界已经达成共识:即嵌入式 Linux 是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。2.2 嵌入式操作系统2.2.1 嵌入式系统特征这些年来掀起了嵌入式系统应用热潮的原因只要有几个方面:一是芯片技术的发展,使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能,众多芯片生产厂

23、商已经将注意力集中在这方面。另一方面的原因就是应用的需要,由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。从上面的定义,可以看出嵌入式系统的几个重要特征 4。 系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如 Enea 公司的 OSE 分布式系统,内核只有 5K,而 Windows 的内核却是没有可比性的。 专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需

24、要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”基于嵌入式 Qt 的画图板设计与实现- 5 -是完全两个概念。 系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。 高实时性的系统软件(OS )是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。 嵌入式软件开发走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度

25、多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(RealTime Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。 嵌入式系统开发需要开发工具和环境。由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。选择嵌入式处理器( 硬件平台 )选择嵌入式

26、操作系统( 软件平台 )嵌入式应用软件测试通过 ? 系统测试开发结束NY图 2-1 嵌入式 Linux 开发模式一般流图2.2.2 常见嵌入式 Linux 系统优缺点Linux 的版本可以大体分为两类,一类是商业公司维护的版本,一类是社区组织维护的版本,前者以 Redhat(RHEL)为代表,后者以 Debian 为代表。本节对常见的几个版本的优缺点进行简要分析 4。 Redhat 系列优缺点济源职业技术学院毕业设计(论文)- 6 -这个系列包括 RHEL(Redhat Enterprise Linux,也就是所谓的 Redhat Advance Server,收费版本) 、Fedora Co

27、re(由原来的 Redhat 桌面版本发展而来,免费版本) 、CentOS(RHEL 的社区克隆版本,免费) 。Redhat 应该说是在国内使用人群最多的Linux 版本,甚至有人将 Redhat 等同于 Linux,有很多的专业人士只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,能够很容易的找到运用过程中所遇到的问题,而且目前一般的 Linux 教程都是以 Redhat 为例来讲解的。Redhat 系列的包管理方式采用的是基于 RPM 包的 YUM 包管理方式,包分发方式是编译好的二进制文件。稳定性方面 RHEL 和 CentOS 的稳定性非常好,适合于服务器使

28、用,但是 Fedora Core 的稳定性较差,最好只用于桌面应用。 Debian 系列优缺点这个系列包括 Debian 和 Ubuntu 等。Debian 主要运用在社区类 Linux 之中,也是迄今为止最遵循 GNU 规范的 Linux 系统。Debian 最早由 Ian Murdock 于 1993 年创建,分为三个版本分支(branch): stable,testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的 bug,适合桌面用户。testing 的版本都经过 unstable 中的测试,相对较为稳定,也支持了不少新技术(

29、比如 SMP 等) 。而 stable 一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian 最具特色的是 apt-get / dpkg 包管理方式,其实 Redhat 的 YUM 也是在模仿 Debian 的 APT 方式,但在二进制文件发行方式中,APT 应该是最好的了。另外,Debian 的资料也很丰富,有很多支持的社区。 Ubuntu 系列优缺点Ubuntu 是世界上最流行的 Linux 发行版, 它使用 deb 的软件库(linux 界最大的自由软件库,由 deb 维护) 。对硬件配置要求不高, 用起来还很方便,画面极为简洁,任何人、不论任何目的,

30、都有使用、改写、重新散布、发布改写版 Ubuntu 的自由。Ubuntu 没有所谓的企业版,不用购买授权就可以把它用于商业或其他任何用途。而且可以把 Ubuntu 安装在任意台电脑上,也可以装在移动硬盘或 U 盘等设备上,甚至可以自己定制安装盘。图形界面很强大,系统超级稳定先进的内存管理机制。linux 拥有缓存机制,调入内存的数据,不使用时不会立马删除。这样,当系统再次使用该数据时,只要从内存调用就行了。本系统所使用的是 Linux 系统是 ubuntu。ubuntu 的强项主要体现在:能够使deb 的软件库、图形界面很强大、系统超级稳定、有着先进的内存管理和先进的磁盘管理。与大多数发行版附

31、带数量巨大的可用可不用的软件不同,ubuntu 的软件包清单只包含那些高质量的重要的应用程序。所以最终选择 ubuntu 为本设计的操作系基于嵌入式 Qt 的画图板设计与实现- 7 -统。济源职业技术学院毕业设计(论文)- 8 -第 3 章 基于嵌入式 Qt 画图板的硬件平台搭建本设计选用的硬件开发平台是采用 Samsung 公司基于 ARM920T 内核的S3C2410X 微处理器。本章节主要介绍 ARM 处理器及其特点,简要介绍了基于S3C2410X 的嵌入式系硬件平台的各功能模块。3.1 ARM 微处理器3.1.2 ARM 微处理器的特点ARM 微处理器一般具有几个特点 5。体积小、低功

32、耗、低成本、高性能。支持 Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容 8 位/16 位器件。大量使用寄存器,指令执行速度更快。大多数数据操作都在寄存器中完成。寻址方式灵活简单,执行效率高。指令长度固定。3.1.3 ARM 微处理器系列ARM 微处理器目前包括下面几个系列,以及其它厂商基于 ARM 体系结构的处理器,除了具有 ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。 ARM7 系列 ARM9 系列 ARM9E 系列 ARM10E 系列 SecurCore 系列 Inter 的 Xscale Inter 的 StrongARM其

33、中,ARM7、ARM9 、ARM9E 和 ARM10 为 4 个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore 系列专门为安全要求较高的应用而设计。基于嵌入式 Qt 的画图板设计与实现- 9 -3.1.4 ARM9 微处理器系列介绍ARM9 系列微处理器在高性能和低功耗特性方面提供最佳的性能,具有以下特点 6。 5 级整数流水线,指令执行效率更高。 提供 1.1MIPS/MHz 的哈佛结构。 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。 支持 32 位的高速 AMBA 总线接口。 全性能的 MMU,支持 Windows CE、L

34、inux、 Palm OS 等多种主流嵌入式操作系统。 MPU 支持实时操作系统。 支持数据 Cache 和指令 Cache,具有更高的指令和数据处理能力。ARM9 系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。ARM9 系列微处理器包含 ARM920T、ARM922T 和 ARM940T 三种类型,以适用于不同的应用场合。3.2 S3C2410 开发平台介绍本系统使用开发平台在以 S3C2410X 微处理器为核心的基础根据具体需要上扩展了一系列外围功能器件,最终构成了系统的硬件平台,平台的硬件配置表如表 3-1所示 6。表 3-1 硬件平台

35、配置表硬件 硬件名称 硬件参数cpu ARM920T 结构芯片三星 S3c2410X 工作频率 203MHzFLASH SAMSUNG K9F1208 64M NANDSDRAM HY57V561620AT-H 32M*2=64MEtherNet 网卡 DM900AE 10/100M 自适应LCD LQ080V3DG01 8 寸 16bit TFT触摸屏 SX-080-W4R-FB FM7843 驱动USB 接口 4 个 HOST/1 个 DEICE 由 AT43301 构成 USB HUBAD 由 S3C2410 芯片引出 3 个电位器控制输入扩展卡插槽 168Pin EXPORT 总线直接

36、扩展济源职业技术学院毕业设计(论文)- 10 -IC 卡座 AT24CXX 系列 由 ATMEGA8 单片机控制中断键 1 个 ENT 控制LED 由 3 个 IO 口控制调试接口 板载 JTAG,直接支持下载与仿真 25 针S3c2410X 芯片集成了大量的功能单元,包括。 LCD 控制器(最高 4K 色 STN 和 256K 彩色 TFT) ,一个 LCD 专用 DMA。 三个通用异步串行端口(IrDA1.0, 16-Byte Tx FIFO, and 16-Byte Rx FIFO) ,2 通道 SPI。 2 个 USB HOST ,一个 USB DEVICE(VER1.1) 。 4 个

37、 PWM 定时器和一个内部定时器。 看门狗定时器。 8 通道 10 位 ADC 和触摸屏接口。 1632 位 RISC 体系结构,使用 ARM920T CPU 核的强大指令集。 ARM 带 MMU 的先进的体系结构支持 WINCE、EPOC32、LINUX 。 指令缓存(cache) 、数据缓存、写缓冲和物理地址 TAG RAM,减小了对主存储器带宽和性能的影响。 ARM920T CPU 核支持 ARM 调试的体系结构。基于嵌入式 Qt 的画图板设计与实现- 11 -第 4 章 基于嵌入式 Qt 画图板的软件介绍QT 是用于本地化跨平台应用开发的领先性框架。QT 应用程序接口与工具兼容于所有支

38、持平台,掌握一个应用程序接口,便可执行与平台非相关的应用开发与配置。本章节首先对 Qt 主要特性进行简要介绍,然后对 QT 信号与曹机制进行了详细的论述,最后对 QT Creator 设计软件的功能和优势概述。4.1 QT 主要特性QT 是一个跨平台的 C+图形用户界面库,由挪威 TrollTech 公司开发,目前包括 QT/X11、基于 Framebuffer 的 QT、快速开发工具 QT Designer 以及国际化工具QT Linguist 等。人们所熟知的 Linux 下面的 KDE 环境就是基于 QT 开发而成的。QT 支持 Unix 和 Linux 系统以及 Windows 系统。

39、QT 的主要特点有:面向对象,很容易扩展,并且允许真正的组件编程;QT 对各个模块进行了良好的封装,使各模块可重用性较好;优良的跨平台特性,使用 QT类编写的程序可以实现“一次编码,到处编译” ,极大的降低了跨平台开发的难度;构件支持,对于对象间通信,QT 没有采用函数回调的方法,而是采用了一种全新并且可选的被称为“信号与槽”的对象间通信机制,通过一个对象信号的发射,另一个槽函数的响应,使各个对象之间的通信安全而且高效。QT 的这些特点使它非常适合于真正的构件编程,同时使各个组件之间的协同工作变得十分简单,并且 QT 是直接基于 Xlib 的,不依赖 Motif 工具包,所以它的执行效率比一般

40、的基于平台的代码的执行效率要高 7。4.2 QT 编程机制简介信号与槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和插槽有所了解。信号和插槽是一种高级接口,应用于对象之间的通信,它是 QT 核心特性,也是 QT 区别于其他工具包的关键所在 8。QT 的信号与槽均以函数形式出现,QT 的窗口部件有很多预定义的信号,但也可以通过继承来加入自己的信号。槽就是一个可以被调用处理特定信号的函数。QT的窗口部件有很多预定义的槽,但是通常的习惯是设计者可以加入自己的槽,这样济源职业技术学院毕业设计(论文)- 12 -就可以处理自己所感兴趣的信号。可以用 connect()函数对需要的信号和槽进行

41、连接。当对象的内部状态发生改变,信号就被发射。当一个信号被发射,它所连接的槽会被立即执行,就像一个普通函数调用一样(见图 4-1) 。信号/ 槽机制完全不依赖于任何一种图形用户界面的事件回路。当所有的槽都返回后发射的信号也将返回。信号与插槽机制并不要求类之间互相知道细节,这样就可以相对容易的开发出代码可高重用的类。信号和槽的机制是类型安全的:一个信号的签名必须与它的接收槽的签名相匹配。 (实际上一个槽的签名可以比它接收的信号的签名少,因为它可以忽略额外的签名。 )因为签名是一致的,编译器就可以帮助检测类型不匹配。这样就以以警告的方式报告类型错误,而不会使系统产生崩溃。信号和槽是宽松地联系在一起

42、的:一个发射信号的类不用知道也不用注意哪个槽要接收这个信号。QT 的信号和槽的机制可以保证如果你把一个信号和一个槽连接起来,槽会在正确的时间使用信号的参数而被调用。信号和槽可以使用任何数量、任何类型的参数。它们是完全类型安全的:不会再有回调核心转储(core dump) 9。多个信号与单个插槽可以连接,单个信号与很多插槽也可以连接,甚至将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射,系统都将立刻发射第二个信号。总之,信号与插槽构造了一个强大的部件编程机制。如果一个类要使用信号与槽机制,它就必须是从 QObject 或 QObject 的子类继承,而且类的定义必须加上

43、Q_OBJECT 宏。signals、slots 和 emit 是 QT 特有的关键字,分别用来表示信号、槽、和发送信号,移除这些关键字和预处理程序,就可以使用标准的 C+编译器。槽同其他函数一样也具有访问权限,只是槽的访问权限决定了谁可以和它相连,如一个 public slots:包含了任何信号都可以相连的槽。一个protected slots:包含了只有这个类和它的子类的信号才能连接的槽。这就是说这些槽只是类的实现的一部分,而不是它和外界的接口。 一个 private slots:包含了只有这个类本身的信号可以连接的槽,甚至它的子类都没有获得连接的权利。对象间信号与插槽的连接关系如图 4-

44、1 所示 9。基于嵌入式 Qt 的画图板设计与实现- 13 -O b j e c t 1S i g n a l 1S i g n a l 2O b j e c t 3S i g n a l 1S l o t 1O b j e c t 1S i g n a l 1s l o t 1s l o t 2O b j e c t 4s l o t 1s l o t 2s l o t 3C o n n e t c ( O b j e c t 1 , S i g n a l 1 , O b j e c t 2 , S i g n a l 1 )C o n n e t c ( O b j e c t 1 ,

45、S i g n a l 1 , O b j e c t 2 , S i g n a l 2 )C o n n e t c ( O b j e c t 1 , S i g n a l 2 , O b j e c t 4 , s l o t 1 )C o n n e t c ( O b j e c t 3 , S i g n a l 1 , O b j e c t 4 , s l o t 3 )图 4-1 信号和槽的连接原理图4.3 QT Creator 设计软件概述QT creator 是全新的跨平台集成开发环境,为 QT 开发人员的需求量身定制,由于捆绑了最新 QT 库二进制软件包和附加的开发

46、工具,并作为 QT SDK 的一部分,QT creator 在单独的安装程序内提供了进行跨平台 QT 开发所需的全部工具。QT creator 主要是为了帮助新 QT 用户更快速入门并运行项目,还可提高有经验的 QT开发人员的工作效率。QT 的功能和优势 10。 使用强大的 C+代码编辑器可快速编写代码:语言标识和代码完成功能;输入时进行静态代码校验以及提示样式;上下文相关的帮助;代码折叠;括号匹配和括号选择模式;高级编辑功能。 使用浏览器工具管理源代码:集成了领先的版本控制软件,包括Git、Perforce 和 Subversion;开放式文件,无需知晓确切的名称或位置;搜索类和文件;跨不同

47、位置或文件沿用符号;在头文件和源文件,或在声明和定义之间切换。 为 QT 跨平台开发人员的需求而量身定制:集成了特定于 QT 的功能,如信号与槽;图示调试器,对 QT 类结构可一目了然;集成 QT Designer 可视化布局和格式构建器;只需单击一下就可生成和运行 QT 项目。 使用拖放功能快速设计用户界面;定制 widget,或从标准 widget 库中选择widget;以本地外观快速预览格式。 通过界面原型生成 C+或 Java 代码:将 QT Designer 与 Visual Studio 或Eclipse IDE 配合使用;使用 QT 信号与槽机制构建功能齐全的用户界面。济源职业技

48、术学院毕业设计(论文)- 14 -第 5 章 基于嵌入式 QT 画图板的软件的设计设计实现一个成功的应用程序,不但要有实用的功能配置,也要有友好的用户界面。本章首先对 Qt 画图板实现的功能进行简单论述,接着对涂鸦功能、文件菜单功能以及编辑菜单功能的实现进行了详细研究,最后介绍了画图板界面的设计并实现了基于 Qt 画图板的软件全部功能。5.1 画图板设计模块和功能介绍本系统设计一个基于嵌入式的 Qt 画图板,此程序将实现简单的绘图功能包括点、直线、点线、椭圆等;并且能实现绘图的控制包括线宽、线型和颜色的设置,图形的打开、保存等功能。具体功能模块图如图 5-1 所示 11。简 单 画 图 板文件

49、新建打开保存另保存退出编辑放大缩小还原旋转拉伸清空工具 帮助绘图工具栏 关于本软件选择图形画笔类型画笔线宽画笔颜色填充颜色图 5-1 画图板模块 画板新建功能:新建初始画板,可以选择新建画板的大小,以及背景颜色,确定后即得到所需新建画板。 画板保存、另存为功能:在对画板进行编辑之后,可以选择保存或者另存为。 画板的打开功能:可以打开原来编辑并保存过的画板。 画板放大、缩小功能:画板默认尺寸设计为 400300,图片可逐级放大和缩小,能够以尺寸的 0.25 倍递减和递增,最大可放大到设计时最大尺寸1000010000 最小可缩小到设计时最小尺寸 11。 画板还原功能:画板通过不同尺寸的放大和缩小后,能够还原到初始新建的基于嵌入式 Qt 的画图板设计与实现- 15 -尺寸大小。 画板拉伸、旋转功能:画板

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

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报