为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于嵌入式画图板的设计与实现_毕业设计论文

2019-01-22 20页 doc 2MB 35阅读

用户头像 个人认证

不系舟红枫

从教近30年,经验丰富,教学水平较高

举报
基于嵌入式画图板的设计与实现_毕业设计论文 济源职业技术学院 毕 业 设 计(论文) 题目 基于嵌入式画图板的设计与实现 系别 信息工程系 专业 班级 姓名 学号 指导教师 ...
基于嵌入式画图板的设计与实现_毕业设计论文
济源职业技术学院 毕 业 设 计() 题目 基于嵌入式画图板的设计与实现 系别 信息工程系 专业 班级 姓名 学号 指导教师 日期 基于嵌入式Qt的画图板设计与实现 ——画图板 摘 要 随着数字信息技术和网路技术的高速发展,嵌入式系统已经广泛的参透到各行各业以及人们的日常生活中,嵌入式系统技术已经成为目前最热门的技术之一。 嵌入式系统硬件平台的核心是嵌入式微处理器,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 研究背景 - 2 -1.2 研究目的和意义 - 3 -第2章 嵌入式操作系统 - 3 -2.1 嵌入式系统概述 - 4 -2.2 嵌入式操作系统 - 4 -2.2.1 嵌入式系统特征 - 5 -2.2.2 常见嵌入式Linux系统优缺点 - 7 -第3章 基于嵌入式Qt画图板的硬件平台搭建 - 7 -3.1 ARM微处理器 - 7 -3.1.2 ARM微处理器的特点 - 7 -3.1.3 ARM微处理器系列 - 7 -3.1.4 ARM9微处理器系列介绍 - 8 -3.2 S3C2410开发平台介绍 - 9 -3.2.1 S3C2410X芯片介绍 - 10 -第4章 基于嵌入式Qt画图板的软件介绍 - 10 -4.1 QT主要特性 - 10 -4.2 QT编程机制简介 - 10 -4.2.1 QT系统的信号与槽机制简介 - 12 -4.3 QT Creator设计软件概述 - 13 -第5章 基于嵌入式QT画图板的软件的设计 - 13 -5.1 画图板设计模块和功能介绍 - 14 -5.2 画图板界面的设计 - 14 -5.2.1 菜单的设计 - 17 -5.2.2 添加绘图工具栏 - 18 -5.3 画图板功能设计与实现 - 18 -5.3.1 实现文件菜单功能 - 19 -5.3.2 画图板涂鸦功能的实现 - 21 -5.3.3 实现编辑菜单功能 - 24 -第6章 系统的测试 - 24 -6.1 测试环境 - 24 -6.2 硬件平台搭建测试 - 24 -6.2.1 PC端测试 - 24 -6.2.2 U-Boot端测试 - 25 -6.2.3 内核测试 - 25 -6.2.4 根文件系统测试 - 26 -6.2.5 网卡测试 - 27 -6.3 PC端软件测试 - 27 -6.3.1 界面测试 - 28 -6.3.2 功能测试 - 28 -6.4 综合测试 - 30 -6.5 小结 - 31 -第7章 总结与展望 - 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硬件平台配置表 硬件 硬件名称 硬件参数 cpu ARM920T结构芯片三星S3c2410X 工作频率203MHz FLASH SAMSUNG K9F1208 64M NAND SDRAM HY57V561620AT-H 32M*2=64M EtherNet网卡 DM900AE 10/100M自适应 LCD LQ080V3DG01 8寸16bit TFT 触摸屏 SX-080-W4R-FB FM7843驱动 USB接口 4个HOST/1个DEICE 由AT43301构成 USB HUB AD 由S3C2410芯片引出 3个电位器控制输入 扩展卡插槽 168Pin EXPORT 总线直接扩展 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 个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。 ⑤ 画板还原功能:画板通过不同尺寸的放大和缩小后,能够还原到初始新建的尺寸大小。 ⑥ 画板拉伸、旋转功能:画板可以再当前任何状态下进行侧方向的立体层次型拉伸并开始顺时针90°的定向旋转。 ⑦ 画板清空功能:画板可以在当前任何状态下进行对当前状态的情空,回到初始新建画板状态。 ⑧ 画板画图工具功能:画板可以实现选择图形、画笔类型、画笔线宽、画笔颜色等功能。 ⑨ 为用户设计理想的侧边绘图工具栏,并合理安排界面元素布局,使其美观并且方便用户操作。 ⑩ 图片打开、编辑、保存功能:可以打开一些格式的图片,如png图片,并且可以作为画板背景,在其做编辑并且保存。 5.2 画图板界面的设计 5.2.1 菜单的设计 ① 在QtCreator 中新建Qt4 Gui Application 工程,这里使用的工程名为hautu ,使用默认。 ② 为了让程序中可以使用中文,先在main.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 单击Icon 后面的按钮,弹出资源管理器如图5-7所示。 图5-7Icon资源管理器 点击上面的 Reload,便能显示出我们已经添加的图标,我们选中其中的新建菜单的图标,点击Ok 确认,如图5-8所示。 图5-8添加图标 添加完图标后,我们单击一下快捷键 Shortcut 后面的输入框,然后同时按下 Ctrl 键和N 键,这样就将新建菜单的快捷键设为了Ctrl+N ,如图5-9所示。 图5-9快捷键的设置 然后再在右面的属性窗口中更改statusTip 的内容为“新建文件”,这样在鼠标放在新建菜单上,状态栏就会显示“新建文件”。如图5-10所示。 图5-10属性的设置 按照同样的方法设置其它菜单,设置完成后下图5-11所示。 图5-11菜单的设置 ⑥ 各个菜单的属性设置成功以后,需要将其中的一些图标放到工具栏上,在菜单属性设置窗口中选中这些图标,长按鼠标左键,直至把图标拉到工具栏相应位置。其效果如图5-12所示。 图5-12菜单栏 这样就完成了菜单的设计。 5.2.2 添加绘图工具栏 这里的绘图工具栏使用的是一种叫做Dock 的窗口,它与其它窗口的不同就是它可以在其父窗口中浮动,也可以停靠在父窗口的边界,就像一个工具栏一样[13]。 ① 首先在左边的部件栏中找到Dock Widget,将其拖入到设计区,添加到主界面后它默认在左边框上停靠着。如图5-13所示。 图5-13工具栏设置 ② 在其属性栏里将其windowTitle 改为“画图工具”。 ③ 向其中拖入相关部件,效果如图5-14所示。 图5-14工具栏设置 其中,“画笔线宽”下的部件为 SpinBox ,其属性中的 objectName为 penWidthSpinBox ,属性栏最下面的minimum 属性改为1,即最小值为1。 其余部件均为组合框ComboBox,objectName 依次为: 选择图形:shapeComboBox 画笔类型:penStyleComboBox 画笔颜色:penColorComboBox 填充颜色:brushColorComboBox ④ 给选择框添加条目。 右击“选择图形”下面的组合框,弹出菜单,如图5-15所示。 图5-15组合框条目 点击Edit Items 菜单,弹出下面的条目编辑框,我们点击“+ ”按钮,添加新的条目,同样的我们给“画笔类型”下的组合框添加两个条目“实线”和“点线”。两个颜色组合框的条目以后再添加。 ⑤ 最后可以让所有部件处于一个网格布局管理器中。 此时运行程序,效果如下图5-16所示。 图5-16画图板界面总体效果图 5.3 画图板功能设计与实现 5.3.1 实现文件菜单功能 菜单栏的操作之间存在着逻辑上的顺序关系其中几个函数的原型[12]。 ① bool maybeSave():进行是否保存的判断,当返回值为true 时说明整个判断过程已经进行过了。 ② bool isModified():进行文件是否被更改过的判断,其实就是返回一个bool 型的变量modified 的值。 ③ bool doFileSave():进行文件保存操作,文件保存时先利用bool 型变量isSaved 判断文件是否保存过,如果保存过,就直接将现在的文件进行存储就行了;如果没有保存过,就要进行另存为操作,这样才能获得文件的保存路径。 ④ bool saveFile(Qstring filename):以文件的路径对文件进行存储。存储成功返回true。 整个流程图如图5-17所示。 图5-17文件菜单功能流程 5.3.2 画图板涂鸦功能的实现 首先要添加画布,画布才是真正实现绘图功能的,所以需要在程序中添加一个与绘图有关的类[10]。 ① 在工程中添加新的C++类,类名为PaintArea,以QWidget 作为基类。 ② 在paintArea.h 中声明对象和函数。 class PaintArea : public QWidget { Public PaintArea(); protected: void paintEvent(QPaintEvent *) ; //重绘事件 private: QImage image; //QImage 类对象,用于在其上绘图 QRgb backColor; //QRgb 颜色对象,存储image的背景色 }; ③ 在paintarea.cpp 中的构造函数里初始化对象。 先加入头文件声明:#include 再更改构造函数。 PaintArea::PaintArea() { image = QImage(500,450,QImage::Format_RGB32); // 画布的初始化大小为 500*450,使用32 位颜色 backColor = qRgb(255,255,255); //画布初始化背景色使用白色 image.fill(backColor); } ④ 在paintarea.cpp中定义重绘函数。 void PaintArea::paintEvent(QPaintEvent *) { QPainter painter(this); painter.drawImage(0,0,image); } ⑤ 这样就将画布添加到主界面的中心区,然后要在画布类中添加一些代码,实现一些基本的涂鸦功能。 在paintarea.h 中添加头文件。 #include #include 在protected 中添加函数声明。 void mousePressEvent(QMouseEvent *); //鼠标按下事件 void mouseMoveEvent(QMouseEvent *); //鼠标移动事件 void mouseReleaseEvent(QMouseEvent *); //鼠标释放事件 在private 中添加对象声明。 QPoint lastPoint,endpoint; //定义两个坐标对象存放鼠标指针的前后两个坐标 最后在paintarea.cpp 中添加函数的定义,这样,再次运行程序就能实现涂鸦的功能了,效果如图5-18所示。 图5-18实现涂鸦的功能的画图板 5.3.3 实现编辑菜单功能 编辑菜单主要完成图片的一些形状变化操作,所以需要在画布类里添加一些函数和变量来实现这些功能[3]。 ① 在paintarea.h 中添加代码。 在public 中添加函数声明。 void zoomIn(); //放大 void zoomOut(); //缩小 void zoom_1(); //还原 void doRotate(); //旋转 void doShear(); //拉伸 void doClear(); //清空 在private 中添加变量声明。 qreal scale; //缩放量 int angle; //角度 qreal shear; //拉伸量 ② 在paintarea.cpp 中进行更改。 在构造函数里进行变量初始。 scale = 1; angle = 0; shear = 0; 然后进行那几个函数的定义,更改重绘事件函数,实现相关的效果,最后我们从mainwindow.ui 中进入相关菜单的triggered 事件槽函数,更改如下[13]。 void MainWindow::on_action_4_triggered() //放大菜单 { area->zoomIn(); } void MainWindow::on_action_5_triggered() //缩小菜单 { area->zoomOut(); } void MainWindow::on_action_6_triggered() //还原菜单 { area->zoom_1(); } void MainWindow::on_action_7_triggered() //旋转菜单 { area->doRotate(); } void MainWindow::on_action_8_triggered() //拉伸菜单 { area->doShear(); } void MainWindow::on_action_10_triggered() //清空菜单 { area->doClear(); } 这样就基本实现了电子画板程序的所有基本功能,运行如图5-19所示。 图5-19实现绘制功能 第6章 系统的测试 将系统应用程序移植到目标平台之后,就可以运行并根据需要进行相关的测试。测试的内容包括:测试环境、硬件平台搭建测试、PC端软件测试、综合测试。 6.1 测试环境 操作系统采用 Linux 2.6.31内核,VirtualBox-ubuntu-10.10系统,交叉编译器为arm-linux-gcc 3.4.6, QT开发软件QT Creator 4.6。 6.2 硬件平台搭建测试 6.2.1 PC端测试 搭建Qt的环境后,在Linux下运行Qt程序,测试Qt程序在Linux下能否正常运行,测试效果如图6-1所示。 图6-1 Linux系统下程序运行 6.2.2 U-Boot端测试 PC端测试成功后,需将程序烧入到开发板中。 现在U-Boot已经烧写到开发板上了,可以启动开发板检测是否烧写好。连接好开发板和主机之间的串口、网口,断开开发板的JTAG下载线,启动开发板。如果烧写成功,会在串口终端上出现如图6-2所示的内容。 图6-2 U-Boot测试 结论:通过以上测试U-Boot挂载成功。 6.2.3 内核测试 把生成uImage 放入主机的 TFTP 目录下,启动开发板,用 U-Boot 的 tftp 命令下载 uImage 到 SDRAM,并启动开发板。在内核启动的时候,在 LCD 的左上角就会出现 Linux 的 LOGO,一只小企鹅。并在PC端显示如图6-3所示的内容。 图6-3 内核测试 结论:通过以上测试,U-Boot可以引导成功内核。 6.2.4 根文件系统测试 开启windows 的tftp服务器,设置环境变量,保证开发板和windows在同一网段及开发板的tftp服务器的IP为windows的IP。 下载并烧写到nand flash文件系统对应的分区中设置启动参数重启开发板,启动目标板,串口输出显示根文件系统已经加载成功,如图6-4所示。 图6-4 根文件系统测试 结论:根文件系统能成功挂载到内核,系统运行稳定。 6.2.5 网卡测试 首先配置PC端和ARM设备在同一网段,然后用Ping 命令进行测试,测试效果图如下图6-5、6-6、6-7所示。 图6-5 局域网IP地址 图6-6终端IP地址 图6-7网卡相通 结论:在终端下输入Ping命令,PC端和ARM端能连通。 6.3 PC端软件测试 6.3.1 界面测试 完成一个成功的Qt程序设计,首先需要完成界面设计。界面设计主要包括菜单的设计和绘图工具栏的设计。具体界面显示如图6-8所示。 图6-8界面测试 6.3.2 功能测试 界面设计完成后,需要进行相关功能的完善。画图板的主要功能包括画布的添加,涂鸦功能的实现以及基本相关功能的实现。如:打开、保存、新建等。运行程序后效果如图6-9所示。 图6-9 功能测试 6.4 综合测试 综合测试主要是将画图板程序经过交叉编译后烧到开发板,然后对其综合运行效果进行整体测试。测试内容分为如下图6-10颜色的设置测试,图6-12互补的设置测试和6-13绘图功能测试等。 图6-10 实现设置颜色 图6-11 实现添加画布宽、高和颜色 图6-12 实现绘制功能 6.5 小结 本章主要介绍测试环节,将Qt程序下载到up2410开发板中运行,以实现了嵌入式平台上运行画图板程序,测试效果较好。总体来说,画图板的设计能够满足基本的用户需求,不过要成为一款真正能够进入市场的软件,还是有很多的缺陷,同时还需要更多拓展功能的支持。 第7章 总结与展望 本文着重介绍了基于一个成熟的嵌入式嵌入式GUI系统即QT所设计的画图板程序。主要围绕实现基于嵌入式的QT画图板所需的软硬件技术进行研究与开发,在实际的工作过程中主要完成以下工作: ① 提出了基于嵌入式的QT画图板的构想。 ② 给出了基于嵌入式的QT画图板的具体设计方案。 ③ 根据需求选择了系统的硬件平台和软件平台。 ④ 采用主流的软硬件平台如ARM硬件平台、嵌入式Linux、QT/E图形系统等,掌握了了嵌入式产品的开发流程以及所需的部分技术。 通过具体的系统功能设计实现了基于嵌入式的QT画图板的原型。 系统的功能大都已经实现,但还有以下不足之处需要改进。 ① 系统硬件平台不够精简和专用,通过以后不断的研究和深化会考虑自己设计系统的硬件开发板。 ② 系统整体功能不够完善。如画图板的界面还需要进一步整体美化、打开图片的格式过于单一、无法进行对所画图形的剪切选取、绘图工具的种类不够具体等等。 ③ 系统的源代码以及整体结构有待优化,实用性以及人性化方面还需要继续提高。 致 谢 在此要感谢陈平老师悉心的指导,感谢同学们给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,不仅培养了我独立工作的能力,树立了对自己工作能力的信心,而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。相信会对今后的学习工作生活有非常重要的影响。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。 另外还要再次感谢在这毕业设计中给过我帮助的所有老师和同学,真诚的感谢你们对我的帮助。并衷心的感谢评审老师在百忙之中抽出宝贵时间仔细审阅我的论文。 同时,正是有了学院领导的关心和帮助,正是因为他们严格的管理和耐心的指导,使我的毕业设计能够顺利完成,在此谨致以中心的感谢和崇高的敬意! 参 考 文 献 [1] 朱小远,谢龙汉. Linux嵌入式系统开发[M]. 电子工业出版社,2012. [2]怯肇乾.嵌入式图形系统设计[M].北京:北京航空航天大学出版社,2009. [3] 弓雷.ARM嵌入式Linux系统开发[M].北京:清华大学出版社,2010. [4] 朱小远,谢龙汉. Linux嵌入式系统开发[M].电子工业出版社,2012. [5]周立功.ARM嵌入式系统基础教程(第2版) [M]. 北京:北京航空航天大学出版社,2008. [6]杨水清. ARM嵌入式Linux系统开发技术详解[M]. 北京:电子工业出版社,2009. [7]刘艳青.苏桂莲.基于Qt4的图形用户界面程序的设计与实现[J].现代计算机,2009. [8]郑阿奇,陈超.Qt4开发实践[M].北京电子工业出版社,2011. [9]苗中粮,宛斌.Qtopia编程之道[M].北京清华大学出版社,2009. [10]丁林松,黄丽琴.Qt4图形设计与嵌入式开发[M].北京人民邮电出版社,2009. [11]Uasmin Blanchette.Mark Summerfield.C++ GUI Programming with Qt4[M].UpperSaddle River:Prentice Hall,2008. [12]王世江.鸟哥的Linux私房菜 基础学习篇(第三版)[M].北京人民邮电出版社,2010. [13]薛圆圆.21天学通Linux系统[M]. 北京电子工业出版社,2010. 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 二〇一〇年九月二十日   毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 二〇一〇年九月二十日 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师赵达睿老师、和研究生助教熊伟丽老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。   作者签名: 年 月 日   毕业设计(论文)使用授权声明 本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定)   作者签名: 年 月 日 基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。 毕业论文的基本教学要求是: 1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。 毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。 毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。 撰写意义:1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。 2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。 3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。 论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。 按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。 按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。 按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。 另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类: 1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。 写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的 总结 性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际 问题 的能力。从文体而言,它也是对某一专业领域的现实问题或 理论 问题进行 科学 研究 探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。 首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。 教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。 第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展 。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。 第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。 致 谢 这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。 通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。 即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。 III _1234567892.vsd � 简单画图板� 文件� 新 建� 打� 保存� 另 保 存� 退出� 编辑� 放大 缩小� 还原� 旋转� 拉伸� 清空� 工具� 帮助� 绘图工具栏� 关于本软件� 画笔类型 画笔线宽� 画笔颜色� 选择图形� 填充颜色� _1413624406.vsd � 标题 � � � � 选择嵌入式处理器(硬件平台)� 选择嵌入式操作系统(软件平台)� 嵌入式应用软件� 测试通过?� 系统测试� 开发结束� Y N� _1234567893.vsd � 标题 � 新建或打开或退出操作 是否保存现有文件 (用maybeSave()函数判定) 进行新建或打开或退出等相关操作 文件是否保存过 (根据isSaved变量判断) 直接保存(用saveFile()函数) 文件是否更改过(用isModified()函数判断) 弹出是否保存文件提示框 执行另存为操作(用doFileSaveAs()操作) 执行另存为操作(用doFileSave()函数) 是 否 是 选择“是” doFileSave()函数内容: maybeSave()函数内容:� _1234567891.vsd � � 标题 � Object1 Signal1 Signal2� Object3 Signal1 Slot1 � Object1 Signal1 slot1 slot2 � Object4 slot1 slot2 slot3 � Connetc(Object1, Signal1, Object2,Signal1) Connetc(Object1, Signal1, Object2,Signal2)� Connetc(Object1, Signal2, Object4,slot1)� Connetc(Object3, Signal1, Object4,slot3)�
/
本文档为【基于嵌入式画图板的设计与实现_毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索