收藏 分销(赏)

学士学位论文--基于嵌入式画图板的设计与实现.doc

上传人:可**** 文档编号:3006648 上传时间:2024-06-12 格式:DOC 页数:39 大小:2.50MB
下载 相关 举报
学士学位论文--基于嵌入式画图板的设计与实现.doc_第1页
第1页 / 共39页
学士学位论文--基于嵌入式画图板的设计与实现.doc_第2页
第2页 / 共39页
学士学位论文--基于嵌入式画图板的设计与实现.doc_第3页
第3页 / 共39页
学士学位论文--基于嵌入式画图板的设计与实现.doc_第4页
第4页 / 共39页
学士学位论文--基于嵌入式画图板的设计与实现.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

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

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

3、;画图板ABSTRACTWith 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 system hardware platform is th

4、e 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 digital consumer, handheld device

5、s 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 Qt drawing board, based on t

6、he 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 development of software prog

7、ramming, 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 design and implementation of

8、 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 interface; drawing board I目 录 第1章 引言

9、- 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 S3C2410开发平台介绍- 8 -3.2.1 S3C2410X芯片介绍- 9 -第4章 基于嵌入式Qt画图板的软件介绍- 10

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 画图板功能设计与实现- 18 -5.3.1 实现文件菜单功能- 18 -5.3.2 画图板涂鸦功能的实现- 19 -5.3.3 实现编辑菜单功能- 21 -第6章 系统的测试- 24 -6.1 测试环境- 24 -

11、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 -6.3 PC端软件测试- 27 -6.3.1 界面测试- 27 -6.3.2 功能测试- 28 -6.4 综合测试- 28 -6.5 小结- 30 -第7章 总结与展望- 31 -致 谢- 32 -参 考 文 献- 33 -III基于嵌入式Qt的画图板设计与实现第1章 引言1.1 研究背景近年来,随着计算技术、通信技术的飞速发展,特别是互联网的迅速普及和3C(计算机、通信、消费电子)

12、合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信息产业的主流。嵌入式产品的发展,往往要求嵌入式操作系统有网络和图形的功能。利用源代码开放的Linux搭建的嵌入式操作系统,由于强大的网络功能和低成本,近来得到了越来越多的应用。主要体现在以下几个方面1。 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持随着因特网技术的成熟、带宽的提高,ICP和ASP在网上提供的信息内容日趋丰富、应用项目多种多样。像电话手机、电话座机及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处

13、理器DSP增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。 互联网成为必然趋势为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCPIP协议簇软件支持;由于家用电器相互关联(如防盗报警,灯光能源控制,影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持

14、应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。 支持小型电子设备实现小尺寸、微功耗和低成本为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片。这就相应提高了对嵌入式软件设计技术要求。如,选用最佳的编程模型和不断改进算法。提供精巧的多媒体人机界面嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的亲和力,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆。人们与信息终端交互要求以GUI屏幕为中心的多媒体界面。手写文字输入、语音拨号上网,收发电子邮件以及彩色图形、

15、图像已取得初步成效。1.2 研究目的和意义虽然市场上现在已经有了众多的优秀的GUI应用软件,但随着近年来计算机技术的迅速发展,当新硬件、新技术出现时,计算机的体系结构、指令系统和操作系统都可能发生相应的改变,这势必会导致一部分应用软件在新环境下无法正常运行。如果舍弃原有软件而重新开发,将会耗费大量的人力和资金,而且浪费了许多成熟的软件成果。而QT在源代码级上实现了跨平台特性,极大的支持了跨平台通用软件的开发。QT可以用同一个源程序在不同平台上编译链接,生成目标代码,并取得相同的运行效果,这种技术称之为“一次编写,随处编译”,利用这种方法充分实现了程序的跨平台运行。这种基于源代码的跨平台特性不仅

16、解决了性能的问题,而且可以发挥各个平台的优势,充分利用每个平台自身的特点;并且即可以在新环境下实现原有软件的功能和特点,减少开发费用,还可以改进原有软件的不足,增加新的需求,从而提高软件的质量,延长软件生命期。针对嵌入式产品的高度个性化,其外观、与用户交互的界面千差万别的特点,故而系统的设计目标是意在打造一个能在嵌入式终端运行、通用的、可以方便的支持各种控件、各种图形格式,具有体积小、可裁剪、可移植的这样一个面向嵌入式的应用程序系统,使各种嵌入式设备也同样能具有美观的用户界面,相对比较丰富的功能,操作起来简单而又直观2。本文通过对嵌入式Linux和QT的分析,在嵌入式QT的基础上,开发了面向嵌

17、入式终端的画图板应用软件。画图板不仅支持新建、保存等功能,还支持图片的打开,另外还有如放大、缩小、旋转等各种方式下的图片浏览。它们体积小,移植方便,适用于掌上电脑、智能电话及一些高端的嵌入式设备中。此外它作为一种小型GUI解决方案,可用于那些对GUI大小要求苛刻的各种应用系统中。第2章 嵌入式操作系统 嵌入式系统,就是以应用为中心、以计算机技术为基础、软件硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。本章首先通过嵌入式系统选择对比,介绍了嵌入式系统的优缺点,最后根据系统方案要求重点叙述了选择的嵌入式Ubuntu操作系统。2.1 嵌入式系统概述综观嵌入式系统的

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

19、着因特网的发展以及因特网技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与因特网的结合将代表着嵌入式技术的真正未来2。Linux是个和Unix相似,以Unix核心为基础、完全内存保护、多任务多进程的操作系统。其程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行,这样开发人员可以对操作系统进行定制。同时由于有GPL的控制,大家开发的东西大都相互兼容,不会走向分裂之路。Linux用户遇到问题时可以通过Internet向网上成千上万的Linux开发者请教,这使最困难的问题也有办法解决。Linux带有Unix用户熟悉的完善的开发

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

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

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

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

24、OS(RealTime Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。 嵌入式系统开发需要开发工具和环境。由于其本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。图2-1 嵌入式Linux开发模式一般流图2.2.2 常见嵌入式Linux系统优缺点Linux的版本可以大体分为两

25、类,一类是商业公司维护的版本,一类是社区组织维护的版本,前者以Redhat(RHEL)为代表,后者以Debian为代表。本节对常见的几个版本的优缺点进行简要分析4。 Redhat系列优缺点这个系列包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,有很多的专业人士只用这一个版本的Linux。所以这个版本的

26、特点就是使用人群数量大,资料非常多,能够很容易的找到运用过程中所遇到的问题,而且目前一般的Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。 Debian系列优缺点这个系列包括Debian和Ubuntu等。Debian主要运用在社区类Linux之中,也是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(bra

27、nch): stable,testing 和 unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。另外,Debian的资料也很丰富,有很多支持的社区。 Ubuntu系列

28、优缺点Ubuntu是世界上最流行的Linux发行版, 它使用deb 的软件库(linux界最大的自由软件库,由deb维护)。对硬件配置要求不高,用起来还很方便,画面极为简洁,任何人、不论任何目的,都有使用、改写、重新散布、发布改写版Ubuntu的自由。Ubuntu没有所谓的企业版,不用购买授权就可以把它用于商业或其他任何用途。而且可以把Ubuntu安装在任意台电脑上,也可以装在移动硬盘或U盘等设备上,甚至可以自己定制安装盘。图形界面很强大,系统超级稳定先进的内存管理机制。linux 拥有缓存机制,调入内存的数据,不使用时不会立马删除。这样,当系统再次使用该数据时,只要从内存调用就行了。本系统所

29、使用的是Linux系统是ubuntu。ubuntu的强项主要体现在:能够使deb的软件库、图形界面很强大、系统超级稳定、有着先进的内存管理和先进的磁盘管理。与大多数发行版附带数量巨大的可用可不用的软件不同,ubuntu 的软件包清单只包含那些高质量的重要的应用程序。所以最终选择ubuntu为本设计的操作系统。第3章 基于嵌入式Qt画图板的硬件平台搭建本设计选用的硬件开发平台是采用Samsung公司基于ARM920T内核的S3C2410X微处理器。本章节主要介绍ARM处理器及其特点,简要介绍了基于S3C2410X的嵌入式系硬件平台的各功能模块。3.1 ARM微处理器3.1.2 ARM微处理器的特

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

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

32、e,具有更高的指令和数据处理能力。ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。3.2 S3C2410开发平台介绍本系统使用开发平台在以S3C2410X微处理器为核心的基础根据具体需要上扩展了一系列外围功能器件,最终构成了系统的硬件平台,平台的硬件配置表如表3-1所示6。表3-1硬件平台配置表硬件硬件名称硬件参数cpuARM920T结构芯片三星S3c2410X工作频率203MHzFLASHSAMSUNG K9F120864M NAN

33、DSDRAMHY57V561620AT-H32M*2=64MEtherNet网卡DM900AE10/100M自适应LCDLQ080V3DG018寸16bit TFT触摸屏SX-080-W4R-FBFM7843驱动USB接口4个HOST/1个DEICE由AT43301构成 USB HUBAD由S3C2410芯片引出3个电位器控制输入扩展卡插槽168Pin EXPORT总线直接扩展IC卡座AT24CXX系列由ATMEGA8单片机控制中断键1个ENT控制LED由3个IO口控制调试接口板载JTAG,直接支持下载与仿真25针S3c2410X 芯片集成了大量的功能单元,包括。 LCD 控制器(最高 4K色

34、 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 个PWM定时器和一个内部定时器。 看门狗定时器。 8 通道10 位ADC 和触摸屏接口。 1632位 RISC 体系结构,使用 ARM920T CPU核的强大指令集。 ARM 带MMU 的先进的体系结构支持 WINCE、EPOC32、LINUX。 指令缓存(cache) 、数据缓存、写缓冲和物理地址 TAG RAM,减小了对

35、主存储器带宽和性能的影响。 ARM920T CPU 核支持 ARM 调试的体系结构。第4章 基于嵌入式Qt画图板的软件介绍QT 是用于本地化跨平台应用开发的领先性框架。QT 应用程序接口与工具兼容于所有支持平台,掌握一个应用程序接口,便可执行与平台非相关的应用开发与配置。本章节首先对Qt主要特性进行简要介绍,然后对QT信号与曹机制进行了详细的论述,最后对QT Creator设计软件的功能和优势概述。4.1 QT主要特性QT是一个跨平台的C+图形用户界面库,由挪威TrollTech公司开发,目前包括QT/X11、基于Framebuffer的QT、快速开发工具QT Designer以及国际化工具Q

36、T Linguist等。人们所熟知的Linux下面的KDE环境就是基于QT开发而成的。QT支持Unix和Linux系统以及Windows系统。QT的主要特点有:面向对象,很容易扩展,并且允许真正的组件编程;QT对各个模块进行了良好的封装,使各模块可重用性较好;优良的跨平台特性,使用QT类编写的程序可以实现“一次编码,到处编译”,极大的降低了跨平台开发的难度;构件支持,对于对象间通信,QT没有采用函数回调的方法,而是采用了一种全新并且可选的被称为“信号与槽”的对象间通信机制,通过一个对象信号的发射,另一个槽函数的响应,使各个对象之间的通信安全而且高效。QT的这些特点使它非常适合于真正的构件编程,

37、同时使各个组件之间的协同工作变得十分简单,并且 QT是直接基于 Xlib的,不依赖Motif工具包,所以它的执行效率比一般的基于平台的代码的执行效率要高7。4.2 QT编程机制简介信号与槽机制是QT的核心机制,要精通QT编程就必须对信号和插槽有所了解。信号和插槽是一种高级接口,应用于对象之间的通信,它是QT核心特性,也是QT区别于其他工具包的关键所在8。QT的信号与槽均以函数形式出现,QT的窗口部件有很多预定义的信号,但也可以通过继承来加入自己的信号。槽就是一个可以被调用处理特定信号的函数。QT的窗口部件有很多预定义的槽,但是通常的习惯是设计者可以加入自己的槽,这样就可以处理自己所感兴趣的信号

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

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

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

41、图4-1所示9。图4-1 信号和槽的连接原理图4.3 QT Creator设计软件概述QT creator是全新的跨平台集成开发环境,为QT开发人员的需求量身定制,由于捆绑了最新QT库二进制软件包和附加的开发工具,并作为QT SDK的一部分,QT creator在单独的安装程序内提供了进行跨平台QT开发所需的全部工具。QT creator主要是为了帮助新QT用户更快速入门并运行项目,还可提高有经验的QT开发人员的工作效率。QT的功能和优势10。 使用强大的C+代码编辑器可快速编写代码:语言标识和代码完成功能;输入时进行静态代码校验以及提示样式;上下文相关的帮助;代码折叠;括号匹配和括号选择模式

42、;高级编辑功能。 使用浏览器工具管理源代码:集成了领先的版本控制软件,包括Git、Perforce和Subversion;开放式文件,无需知晓确切的名称或位置;搜索类和文件;跨不同位置或文件沿用符号;在头文件和源文件,或在声明和定义之间切换。 为QT跨平台开发人员的需求而量身定制:集成了特定于QT的功能,如信号与槽;图示调试器,对QT类结构可一目了然;集成QT Designer可视化布局和格式构建器;只需单击一下就可生成和运行QT项目。 使用拖放功能快速设计用户界面;定制widget,或从标准widget库中选择widget;以本地外观快速预览格式。 通过界面原型生成C+或Java代码:将QT

43、 Designer与Visual Studio或Eclipse IDE配合使用;使用QT信号与槽机制构建功能齐全的用户界面。第5章 基于嵌入式QT画图板的软件的设计设计实现一个成功的应用程序,不但要有实用的功能配置,也要有友好的用户界面。本章首先对Qt画图板实现的功能进行简单论述,接着对涂鸦功能、文件菜单功能以及编辑菜单功能的实现进行了详细研究,最后介绍了画图板界面的设计并实现了基于Qt画图板的软件全部功能。5.1 画图板设计模块和功能介绍本系统设计一个基于嵌入式的Qt画图板,此程序将实现简单的绘图功能包括点、直线、点线、椭圆等;并且能实现绘图的控制包括线宽、线型和颜色的设置,图形的打开、保存

44、等功能。具体功能模块图如图5-1所示11。图5-1 画图板模块 画板新建功能:新建初始画板,可以选择新建画板的大小,以及背景颜色,确定后即得到所需新建画板。 画板保存、另存为功能:在对画板进行编辑之后,可以选择保存或者另存为。 画板的打开功能:可以打开原来编辑并保存过的画板。 画板放大、缩小功能:画板默认尺寸设计为400300,图片可逐级放大和缩小,能够以尺寸的0.25倍递减和递增,最大可放大到设计时最大尺寸1000010000最小可缩小到设计时最小尺寸11。 画板还原功能:画板通过不同尺寸的放大和缩小后,能够还原到初始新建的尺寸大小。 画板拉伸、旋转功能:画板可以再当前任何状态下进行侧方向的

45、立体层次型拉伸并开始顺时针90的定向旋转。 画板清空功能:画板可以在当前任何状态下进行对当前状态的情空,回到初始新建画板状态。 画板画图工具功能:画板可以实现选择图形、画笔类型、画笔线宽、画笔颜色等功能。 为用户设计理想的侧边绘图工具栏,并合理安排界面元素布局,使其美观并且方便用户操作。 图片打开、编辑、保存功能:可以打开一些格式的图片,如png图片,并且可以作为画板背景,在其做编辑并且保存。5.2 画图板界面的设计5.2.1 菜单的设计 在QtCreator 中新建Qt4 Gui Application 工程,这里使用的工程名为hautu ,使用默认。 为了让程序中可以使用中文,先在main

46、.cpp 中加入头文件#include ,加入下面一行代码: QTextCodec:setCodecForTr(QTextCodec:codecForLocale(); 打开mainwindow.ui,先设计菜单。依次是文件菜单,编辑菜单,工具菜单和帮助菜单。 如图5-5、5-6、5-7、5-8所示。 图5-2文件菜单 图5-3编辑菜单 图5-4工具菜单 图5-5帮助菜单 向工程中添加资源文件,向其中添加要使用的菜单图标。 添加完后记着保存一下资源文件,不然的话,在资源管理器中可能看不到添加的图标。 打开动作编辑器Action Editor,编辑已添加的菜单动作。下面以“新建”菜单的编辑为例,简单介绍一下12。双击action_N,弹出如图5-6所示。图5-6动作编辑器Action Editor单击Ico

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服