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

更新时间:2023-08-24 18:29:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

我自己的毕业论文

济源职业技术学院

毕 业 设 计(论文)

题目

系别

专业

班级

姓名

学号

指导教师

日期 基于嵌入式画图板的设计与实现 信息工程系 二零一二年九月

我自己的毕业论文

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

总计:毕业设计(论文)39 页

图表 35 幅

——画图板

我自己的毕业论文

摘 要

随着数字信息技术和网路技术的高速发展,嵌入式系统已经广泛的参透到各行各

业以及人们的日常生活中,嵌入式系统技术已经成为目前最热门的技术之一。

嵌入式系统硬件平台的核心是嵌入式微处理器,ARM处理器以其小体积、高性

能、低成本、低消耗的优势成为目前应用最广泛的32位高性能嵌入式RISC处理器。在工业控制、移动通信、多媒体数字消费、手持设备等嵌入式解决方案中据着非常重

要的地位。

本文以嵌入式技术的需求为背景,提出了一种适用于嵌入式系统的画图板设计方

案,在此基础上设计并实现了基于Linux/Qt的嵌入式Qt画图板,实现了基于Qt的

嵌入式画图板系统。

本文的目标是设计和实现嵌入式终端下的画图板。论文首先介绍了Linux的优点

和QT开发环境的搭建,着重分析了QT在软件开发中的编程机制,并具体分析了画

图板具体界面的设计,最后简要介绍了嵌入式应用的特点和嵌入式终端下的移植过

程。本文根据画图板的主要功能,设计并实现了画图板的相关基本功能,如:新建、打开、退出、放大、缩小、还原、旋转和拉伸等。最后运行结果符合设计要求,方案

可行。

关键词:嵌入式操作系统;Linux;QT;图形用户界面;画图板

我自己的毕业论文

ABSTRACT With the development of digital information technology and network technology rapid development, the embedded system has widely penetrated into all walks of life and people's daily life, the embedded system technology has become the most popular one.

Embedded system 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 digital 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 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 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 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 interface; drawing board

我自己的毕业论文

目 录

第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 S3C2410开发平台介绍 ..................................................................................... - 8 -

3.2.1 S3C2410X芯片介绍 ................................................... 错误!未定义书签。

第4章 基于嵌入式Qt画图板的软件介绍 ................................................................ - 10 -

4.1 QT主要特性 ..................................................................................................... - 10 -

4.2 QT编程机制简介 ............................................................................................. - 10 -

4.2.1 QT系统的信号与槽机制简介 .................................... 错误!未定义书签。

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 -

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 -

我自己的毕业论文

第1章 引言

1.1 研究背景

近年来,随着计算技术、通信技术的飞速发展,特别是互联网的迅速普及和3C

(计算机、通信、消费电子)合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信息产业的主流。嵌入式产品的发展,往往要求嵌入式操作系统有网络和图形的功能。利用源代码开放的Linux搭建的嵌入式操作系统,由于强大的网络功能和低成本,近来得到了越来越多的应用。主要体现在以下几个方面[1]。

① 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持

随着因特网技术的成熟、带宽的提高,ICP和ASP在网上提供的信息内容日趋

丰富、应用项目多种多样。像电话手机、电话座机及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。

② 互联网成为必然趋势

为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配

备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警,灯光能源控制,影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。

③ 支持小型电子设备实现小尺寸、微功耗和低成本

为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量

和复用接口芯片。这就相应提高了对嵌入式软件设计技术要求。如,选用最佳的编程模型和不断改进算法。

④提供精巧的多媒体人机界面

嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的亲

和力,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习惯的方

我自己的毕业论文

向盘、脚踏板和操纵杆。人们与信息终端交互要求以GUI屏幕为中心的多媒体界面。手写文字输入、语音拨号上网,收发电子邮件以及彩色图形、图像已取得初步成效。

1.2 研究目的和意义

虽然市场上现在已经有了众多的优秀的GUI应用软件,但随着近年来计算机技

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

针对嵌入式产品的高度个性化,其外观、与用户交互的界面千差万别的特点,故

而系统的设计目标是意在打造一个能在嵌入式终端运行、通用的、可以方便的支持各种控件、各种图形格式,具有体积小、可裁剪、可移植的这样一个面向嵌入式的应用程序系统,使各种嵌入式设备也同样能具有美观的用户界面,相对比较丰富的功能,操作起来简单而又直观[2]。

本文通过对嵌入式Linux和QT的分析,在嵌入式QT的基础上,开发了面向嵌

入式终端的画图板应用软件。画图板不仅支持新建、保存等功能,还支持图片的打开,另外还有如放大、缩小、旋转等各种方式下的图片浏览。它们体积小,移植方便,适用于掌上电脑、智能电话及一些高端的嵌入式设备中。此外它作为一种小型GUI解决方案,可用于那些对GUI大小要求苛刻的各种应用系统中。

我自己的毕业论文

第2章 嵌入式操作系统

嵌入式系统,就是以应用为中心、以计算机技术为基础、软件硬件可剪裁、适应

应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。本章首先通过嵌入式系统选择对比,介绍了嵌入式系统的优缺点,最后根据系统方案要求重点叙述了选择的嵌入式Ubuntu操作系统。

2.1 嵌入式系统概述

综观嵌入式系统的发展,大致经历了三个阶段。第一阶段是以单芯片为核心的可

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

术等结合日益密切,嵌入式设备与因特网的结合将代表着嵌入式技术的真正未来[2]。

Linux是个和Unix相似,以Unix核心为基础、完全内存保护、多任务多进程的

操作系统。其程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行,这样开发人员可以对操作系统进行定制。同时由于有GPL的控制,大家开发的东西大都相互兼容,不会走向分裂之路。Linux用户遇到问题时可以通过Internet向网上成千上万的Linux开发者请教,这使最困难的问题也有办法解决。Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X windows)。其强大的语言编译器gcc、g++等也可以很容易得到。不但成熟完善、而且使用方便,为嵌入操作系统提供了一个极有吸引力的选择。

Linux已经被移植到多种硬件平台,这对受开销、时间限制的研究与开发项目是

很有吸引力的。原型可以在标准平台上开发然后移植到具体的硬件上,加快了软件与

我自己的毕业论文

硬件的开发过程。Linux可以随意地配置,不需要任何的许可证或商家的合作关系。它是免费的,源代码可以得到。这是最吸引人的。毫无疑问,这会节省大量的开发费用[3]。

Linux还有以下优点。

① 它本身内置网络支持。

② Linux的高度模块化使添加部件非常容易。

③ Linux在台式机上的成功,使大家看到了Linux在嵌入式系统中的辉煌前景。

嵌入式产品中选择什么样的操作系统极为重要,嵌入式Linux由于其开源特性、

实时性好、可移植、内置网络支持等优点在嵌入式领域成为主力军。如今,业界已经达成共识:即嵌入式Linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。

2.2 嵌入式操作系统

2.2.1 嵌入式系统特征

这些年来掀起了嵌入式系统应用热潮的原因只要有几个方面:一是芯片技术的发

展,使得单个芯片具有更强的处理能力,而且使集成多种接口已经成为可能,众多芯片生产厂商已经将注意力集中在这方面。另一方面的原因就是应用的需要,由于对产品可靠性、成本、更新换代要求的提高,使得嵌入式系统逐渐从纯硬件实现和使用通用计算机实现的应用中脱颖而出,成为近年来令人关注的焦点。从上面的定义,可以看出嵌入式系统的几个重要特征[4]。

① 系统内核小。由于嵌入式系统一般是应用于小型电子装置的,系统资源相对

有限,所以内核较之传统的操作系统要小得多。比如Enea公司的OSE分布式系统,内核只有5K,而Windows的内核却是没有可比性的。

② 专用性强。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧

密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全两个概念。

③ 系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其

功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安

我自己的毕业论文

全。

④ 高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态存

储,以提高速度;软件代码要求高质量和高可靠性。

⑤ 嵌入式软件开发走向标准化,就必须使用多任务的操作系统。嵌入式系统的

应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS(Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。

⑥ 嵌入式系统开发需要开发工具和环境。由于其本身不具备自举开发能力,即

使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。

图2-1 嵌入式Linux开发模式一般流图

2.2.2 常见嵌入式Linux系统优缺点

Linux的版本可以大体分为两类,一类是商业公司维护的版本,一类是社区组织

维护的版本,前者以Redhat(RHEL)为代表,后者以Debian为代表。本节对常见的几个版本的优缺点进行简要分析[4]。

① Redhat系列优缺点

这个系列包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance

Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux

我自己的毕业论文

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

② Debian系列优缺点

这个系列包括Debian和Ubuntu等。Debian主要运用在社区类Linux之中,也是

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

③ Ubuntu系列优缺点

Ubuntu是世界上最流行的Linux发行版, 它使用deb 的软件库(linux界最大的

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

本系统所使用的是Linux系统是ubuntu。ubuntu的强项主要体现在:能够使deb

的软件库、图形界面很强大、系统超级稳定、有着先进的内存管理和先进的磁盘管理。与大多数发行版附带数量巨大的可用可不用的软件不同,ubuntu 的软件包清单只包含那些高质量的重要的应用程序。所以最终选择ubuntu为本设计的操作系统。

我自己的毕业论文

第3章 基于嵌入式Qt画图板的硬件平台搭建

本设计选用的硬件开发平台是采用Samsung公司基于ARM920T内核的

S3C2410X微处理器。本章节主要介绍ARM处理器及其特点,简要介绍了基于S3C2410X的嵌入式系硬件平台的各功能模块。

3.1 ARM微处理器

3.1.2 ARM微处理器的特点

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

其中,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和指令Cache,具有更高的指令和数据处理能力。

ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端

打印机、数字照相机和数字摄像机等。

ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适

用于不同的应用场合。

3.2 S3C2410开发平台介绍

本系统使用开发平台在以S3C2410X微处理器为核心的基础根据具体需要上扩

展了一系列外围功能器件,最终构成了系统的硬件平台,平台的硬件配置表如表3-1所示[6]。

表3-1硬件平台配置表

我自己的毕业论文

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 个PWM定时器和一个内部定时器。

⑤ 看门狗定时器。

⑥ 8 通道10 位ADC 和触摸屏接口。

⑦ 16/32位 RISC 体系结构,使用 ARM920T CPU核的强大指令集。

⑧ ARM 带MMU 的先进的体系结构支持 WINCE、EPOC32、LINUX。

⑨ 指令缓存(cache) 、数据缓存、写缓冲和物理地址 TAG RAM,减小了对

主存储器带宽和性能的影响。

⑩ ARM920T CPU 核支持 ARM 调试的体系结构。

我自己的毕业论文

第4章 基于嵌入式Qt画图板的软件介绍

QT 是用于本地化跨平台应用开发的领先性框架。QT 应用程序接口与工具兼容

于所有支持平台,掌握一个应用程序接口,便可执行与平台非相关的应用开发与配置。本章节首先对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系统。

QT的主要特点有:面向对象,很容易扩展,并且允许真正的组件编程;QT对

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

4.2 QT编程机制简介

信号与槽机制是QT的核心机制,要精通QT编程就必须对信号和插槽有所了解。

信号和插槽是一种高级接口,应用于对象之间的通信,它是QT核心特性,也是QT区别于其他工具包的关键所在[8]。

QT的信号与槽均以函数形式出现,QT的窗口部件有很多预定义的信号,但也

可以通过继承来加入自己的信号。槽就是一个可以被调用处理特定信号的函数。QT的窗口部件有很多预定义的槽,但是通常的习惯是设计者可以加入自己的槽,这样就

我自己的毕业论文

可以处理自己所感兴趣的信号。可以用connect()函数对需要的信号和槽进行连接。当对象的内部状态发生改变,信号就被发射。当一个信号被发射,它所连接的槽会被立即执行,就像一个普通函数调用一样(见图4-1)。信号/槽机制完全不依赖于任何一种图形用户界面的事件回路。当所有的槽都返回后发射的信号也将返回。信号与插槽机制并不要求类之间互相知道细节,这样就可以相对容易的开发出代码可高重用的类。

信号和槽的机制是类型安全的:一个信号的签名必须与它的接收槽的签名相匹

配。(实际上一个槽的签名可以比它接收的信号的签名少,因为它可以忽略额外的签名。)因为签名是一致的,编译器就可以帮助检测类型不匹配。这样就以以警告的方式报告类型错误,而不会使系统产生崩溃。信号和槽是宽松地联系在一起的:一个发射信号的类不用知道也不用注意哪个槽要接收这个信号。QT的信号和槽的机制可以保证如果你把一个信号和一个槽连接起来,槽会在正确的时间使用信号的参数而被调用。信号和槽可以使用任何数量、任何类型的参数。它们是完全类型安全的:不会再有回调核心转储(core dump)[9]。

多个信号与单个插槽可以连接,单个信号与很多插槽也可以连接,甚至将一个信

号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射,系统都将立刻发射第二个信号。总之,信号与插槽构造了一个强大的部件编程机制。

如果一个类要使用信号与槽机制,它就必须是从QObject或QObject的子类继承,

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

对象间信号与插槽的连接关系如图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++代码编辑器可快速编写代码:语言标识和代码完成功能;输

入时进行静态代码校验以及提示样式;上下文相关的帮助;代码折叠;括号匹配和括号选择模式;高级编辑功能。

② 使用浏览器工具管理源代码:集成了领先的版本控制软件,包括Git、Perforce

和Subversion;开放式文件,无需知晓确切的名称或位置;搜索类和文件;跨不同位置或文件沿用符号;在头文件和源文件,或在声明和定义之间切换。

③ 为QT跨平台开发人员的需求而量身定制:集成了特定于QT的功能,如信

号与槽;图示调试器,对QT类结构可一目了然;集成QT Designer可视化布局和格式构建器;只需单击一下就可生成和运行QT项目。

④ 使用拖放功能快速设计用户界面;定制widget,或从标准widget库中选择

widget;以本地外观快速预览格式。

⑤ 通过界面原型生成C++或Java代码:将QT Designer与Visual Studio或Eclipse

IDE配合使用;使用QT信号与槽机制构建功能齐全的用户界面。

我自己的毕业论文

第5章 基于嵌入式QT画图板的软件的设计

设计实现一个成功的应用程序,不但要有实用的功能配置,也要有友好的用户界

面。本章首先对Qt画图板实现的功能进行简单论述,接着对涂鸦功能、文件菜单功能以及编辑菜单功能的实现进行了详细研究,最后介绍了画图板界面的设计并实现了基于Qt画图板的软件全部功能。

5.1 画图板设计模块和功能介绍

本系统设计一个基于嵌入式的Qt画图板,此程序将实现简单的绘图功能包括点、

直线、点线、椭圆等;并且能实现绘图的控制包括线宽、线型和颜色的设置,图形的打开、保存等功能。具体功能模块图如图5-1所示[11]。

图5-1 画图板模块

① 画板新建功能:新建初始画板,可以选择新建画板的大小,以及背景颜色,

确定后即得到所需新建画板。

② 画板保存、另存为功能:在对画板进行编辑之后,可以选择保存或者另存为。

③ 画板的打开功能:可以打开原来编辑并保存过的画板。

④ 画板放大、缩小功能:画板默认尺寸设计为400×300,图片可逐级放大和缩

小,能够以尺寸的0.25倍递减和递增,最大可放大到设计时最大尺寸10000×10000最小可缩小到设计时最小尺寸1×1。

⑤ 画板还原功能:画板通过不同尺寸的放大和缩小后,能够还原到初始新建的

尺寸大小。

本文来源:https://www.bwwdw.com/article/90li.html

Top