嵌入式技术基础教学课件 ppt 作者 严雨 第九章QtEmbedded嵌入式图形开发

上传人:E**** 文档编号:89409396 上传时间:2019-05-24 格式:PPT 页数:46 大小:648.50KB
返回 下载 相关 举报
嵌入式技术基础教学课件 ppt 作者  严雨 第九章QtEmbedded嵌入式图形开发_第1页
第1页 / 共46页
嵌入式技术基础教学课件 ppt 作者  严雨 第九章QtEmbedded嵌入式图形开发_第2页
第2页 / 共46页
嵌入式技术基础教学课件 ppt 作者  严雨 第九章QtEmbedded嵌入式图形开发_第3页
第3页 / 共46页
嵌入式技术基础教学课件 ppt 作者  严雨 第九章QtEmbedded嵌入式图形开发_第4页
第4页 / 共46页
嵌入式技术基础教学课件 ppt 作者  严雨 第九章QtEmbedded嵌入式图形开发_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《嵌入式技术基础教学课件 ppt 作者 严雨 第九章QtEmbedded嵌入式图形开发》由会员分享,可在线阅读,更多相关《嵌入式技术基础教学课件 ppt 作者 严雨 第九章QtEmbedded嵌入式图形开发(46页珍藏版)》请在金锄头文库上搜索。

1、,第九章Qt/Embedded嵌入式图形开发,目录,Qtopia虚拟平台及在S3C2410s开发板上移植,本章导读,Qt/Embedded嵌入式图形开发基础,目录,本章导读,能力目标: 了解嵌入式图形开发的流程; 了解嵌入式图形开发工具Qt和Qt/Embedded; 了解嵌入式图形开发工具Qt/Embedded; 了解Qt/Embedded的开发环境; 了解Qt设计器及其使用; 了解Qtopia与Qt/Embedded的关系; 了解Qtopia的虚拟平台构建和开发流程。,1,学习导航: 本章是对基于ARM9的图形界面的设计平台Qt的介绍,在文章中系统的介绍了Qt/Embedded和Qtopia

2、的开发环境建立和进行开发的相关概念、基础知识和一般应用的综述,为后续的深入学习提供了知识基础,和理论储备,图9-1所示是Qt/E的图形界面的开发流程。,2,知识框架: 本章知识内容为基于ARM9的Linux嵌入式系统地图形界面的开发的工具、开发环境、信号和插槽的概念以及移植何下载等。,3,Qt/Embedded嵌入式图形开发基础,Qt/E是Tolltech公司的嵌入式产品,它是以工具包的形式提供给开发人员的。Qt是C+语言开发的,最初的Qt主要是为跨平台的软件开发者提供一个统一的图形用户编程接口,以及统一的网络和数据库操作的编程接口。如今Qt已经成为一个支持多操作系统的应用程序开发框架,它为用

3、户提供的工具包中包括了图形设计器、Makfile制作工具、字体国际化工具和Qt的C+类库,以及丰富的API函数。Linux桌面系统KDE就是基于Qt开发的。,4,Qt/E作为一个专用于嵌入式系统的GUI,它运行时需要的资源少,Qt/Embedded在运行时只需要一个较小的存储空间和内存,Qt/E采用模拟化编程,是可裁剪的,开发人员可以根据应用的需求,将不需要的功能剪裁掉。 9.1.1 Qt/Embedded概述 Qt/E是Qt的嵌入式版本,是专门为嵌入式系统的图形用户界面定制的开发工具包。Qt/E与Qt一样是用C+语言开发的,它继承了C+的优良的框架,为用户提供了基于信号和插槽的组件化编程机制

4、。,5,Qt/Embedded可以运行在不同的处理器上,只要Linux系统支持该处理器,则Qt/Embedded就可以在编译后正常运行在该处理器上。目前Qt/E支持的处理器有Inter X86、MIPS、ARM、M68K和PowerPC等。 Qt/E采用面向对象的设计思想,支持多种不同的输入设备,如:键盘、鼠标和图形加速卡等。Qt/E不需要X服务器或Libe库,因此它所消耗的内存不大,通过裁剪和隐式共享的技术,Qt/E能够最大程度的节省内存空间。隐式共享是Qt/E采用的一种节省内存空间的技术,在Qt中有很多类中都采用了该技术。使用该技术可以避免不必要的复制占用内存空间。,6,Qt/E可以直接写

5、内核缓冲帧,它的工具包中的图形设计器Designer支持可视化的用户接口设计,同时还具有动态布局的功能。图9-3是Qt/Embedded的Linux版本的层次结构图。,7,Qt/E窗口系统 一个Qt/Embedded窗口系统可以包含一个或多个进程,其中的一个进程可以作为服务器进程。服务器进程其主要功能如下: 为客户分配显示区域 绘制屏幕 提供输入方法 提供用户接口 产生鼠标事件 产生键盘事件,8,Qt/E字体 Qt/Embedded嵌入式系统的图形用户界面开发包支持以下4种格式的字体,同时还可以通过增加子类的方式来支持其他字体格式,QT/E中使用的所有字体都采用Unicode方式进行编码。 T

6、rueType(TTF):可缩放的矢量显示字体。 Postscript Type1 (PFA/PFB):可缩放的矢量打印字体。,9,Bitmap Distribution Format fonts (BDF):不可缩放的位图像素字体,占用的存储空间量大。 Qt Prerendered Font (QPF):是QT/E专用的,不可缩放的轻量级字体。 在Qt/Embedded开发包中QPF是QT/E专用的始终可用的字体,其余三中字体的开启和关闭是可选的。 TTF字体是显示用的,可缩放的矢量字体,使用该格式时,每个指定大小的字符只在第一次显示时被渲染;,10,BDF字体是位图显示字体,第一次使用该字

7、体时所有字符都会被渲染,TTF、PFA和QPF字体格式都能采用光滑的抗锯齿方式进行渲染; Qt/E输入方法 Qt/E开发包对不同的输入法提供了支持接口,对于常用的中文输入法、日文输入法、阿拉伯文输入法和希伯来文输入法,都必须改变键盘的输入编码。,11,Qt/E开发包中的输入法类QWSInputMethod是一个基类,它定义了一些接口接口来支持不同的输入法程序,它可以处理鼠标和键盘事件,把接收到的键盘事件按照指定的输入法编码规则转换成对应的文字。下面我以中文输入法为例来介绍文字输入的步骤。 在键盘上按拼音或五笔按顺序进行按键,在Linux的服务器端监测到键盘和鼠标事件,执行对应的输入法。 当继续

8、进行按键时下文处于激活状态,输入法会尝试着去创建与键盘输入相对应的中文字符。,12,输入完成时,需要用户通过某种方式来确认输入完成的结束字符串,此时,用户所选择的结束字符串将最终被发送到当前的编辑窗口。 Qt/Embedded采用面向对象的设计思想,支持多种不同的输入命令。例如,键盘、鼠标、图形加速卡等。Qt/Embedded不需要服务器或者lib库,因此它所消耗的内存不大,通过裁剪和隐藏方式共享技术,Qt/Embedded能够最大程度地节省内存空间。,13,9.1.2 创建Qt/Embedded开发环境 准备工作 在进行Qt/E开发环境的安装前,应先获取相关的安装包。要创建Qt/E的开发环境

9、,我们需要先准备如下的安装包: Tmake安装包:tmake是makefile的生成工具。 Qt/Embedded安装包:qt-embedded-2.3.2.tar.bz2是嵌入式开发包。 Qt的X11版的安装包:qt-x11-2.3.2.tar.gz是用以产生开发环境所需的工具。,14,安装tmake 在linux的命令行模式下先对文件进行解压,在安装。 tar xfz tmake-1.13.tar.gz export TMAKEDIR=/qt/tmake-1.13 export TMAKEPATH=/qt/tmake-1.13/lib/qws/linux-x86-g / export PA

10、TH=/qt/tmake-1.13/bin/:$PATH,15,安装Qt/Embedded 本书中选用的Qt/Embedded安装包是qt-embedded-linux-opensource-src-3.4.0-rc1.tar.bz2它是一个完整的开发工具,其中包含了基于linux的嵌入式平台开发工具和GUI。下面是qt-embedded-linux的安装步骤: tar jxvf qt-embedded-2.3.2.tar.bz2 cd qt-embedded-2.3.2 ./comfigure -prefix /opt/qte -qt-mouse-linuxup -qvfb,16,Make

11、make install export QTDIR = /opt/qpe export QTEDIR = $QTDIR export PATH = /opt/qte/bin:$PATH export LD_LIBRARY_PATH = opt/qte/lib:$LD_LIBRARY_PATH,17,安装Qt -X11 qt-x11-2.3.2.tar.bz2主要是产生Qt开发工具,如designer和qvfb等,下面是qt-x11-2.3.2.tar.bz2的安装步骤: tar jxvf qt-x11-2.3.2.tar.bz2 cd qt-x11-2.3.2 ./configure make

12、,18,make install cd qt-x11-2.3.2 cd /tools/qvfb make cp bin/qvfb /opt/qte/bin,19,9.1.3 Qt设计器简介 Qt设计器是用来设计和实现用户界面,并支持多平台下使用的一种可视化的设计工具。Qt设计器中包含了一个代码编辑器,qt窗口等功能的基类,同时还支持信号和插槽机制。使用Qt设计器你可以在编辑器中自己定制插槽的功能代码、操作工具栏、菜单栏等。,20,信号和插槽 信号和插槽是Trolltech创立的一种新机制,主要用于对象间的通信,Qt是完全支持该机制的,所以信号与插槽也被认为是Qt编程的基础。 在图形用户界面中常

13、常需要对用户的鼠标和键盘等动作做出响应,在很多时候对于这些事件的响应是通过回调函数来实现的,即事先定义一个函数,并把函数的指针作为参数传递给另外一个这种调用函数,当特定的事件发生时,调用函数通过地址调用回调函数对事件进行处理。而信号和插槽是另一种完全不同的机制,在Qt的编程中它取代了回调函数,同时也避免了由此带来的进程崩溃的问题。,21,在Qt中信号和插槽是使用C+来实现的。在采用信号和插槽编程的类中,必须对QObject子类进行继承,并在类的定义中加上Q_OBJECT宏。在类中信号signals是不需要实现的,当信号被激活时,执行与该信号连接的插槽函数。插槽函数是需要被实现的函数,它与普通的

14、C+成员函数一样,它可以是虚函数,可以被重载。唯一不同的是插槽适合信号连接的函数,它可以在信号即事件发生后被自动调用。,22,在应用中,我们可以将信号和插槽随意进行组合,一个信号可以连接到一个或多个插槽 ,当一个信号被连接到多个插槽时,当信号发送时,与之连接的插槽将一个一个地被调用。如果是多个信号连接到一个插槽,此时只要与之相连的其中一个信号发送,插槽就会被调用。图9-5是信号和插槽的连接示意图。,23,代码编辑器 代码编辑器是进行代码编写的地方,使用代码编辑器用户可以在程序中嵌入自定义的插槽和信号。Qt中的信号和插槽是用C+语言编写的,它可以自动生成部分代码,也可以使用编辑器来编写实现的代码

15、。关于程序的编写规则和C+的书写一样,在此不再赘述。,24,窗口 Qt设计器拥有丰富的窗口资源,Qwidget类是所有用户界面对象的基类。窗口是用户界面的一个基本原子,每一个窗口都是矩形,它不仅可以显示绘制图形,还可以从窗口系统中接收鼠标和键盘事件。图9-6是Qwidget的类继承图。,25,每一个窗口都有一个顶级窗口,QDialog可以作为一个顶级窗口,它是一个没有父窗口的窗口。通常情况下,在一个父窗口会包含框架、标题栏等子窗口。 非顶级窗口就是子窗口,它是父窗口中的组成部分。类QWidget是拥有很多成员函数和成员变量的类。它的所有成员可以分为公有成员、私有成员和保护成员几大类,下面将罗列

16、出部分的公有插槽函数。,26,QWidget的成员众多,在使用的时候你可以根据需要为你的窗口添加部件和事件,如:窗口重绘、鼠标按下、鼠标释放和按键相关函数等。 paintEvent():窗口重绘函数,当窗口中的部件更新需要重绘时调用该函数。执行该函数将在屏幕上重绘窗口。 resize Event():是窗口部件大小的函数。 mousePressEvent():当鼠标键被按下时被调用该函数,在Qt中有六个与鼠标相关的事件,但鼠标按下和鼠标释放事件是其中最重要的事件。,27,mouseReleaseEvent():是鼠标键释放事件函数,当窗口部件接收到相应的鼠标释放事件时,调用该函数。 mouseDoubleClickEvent():是鼠标键双击事件函数。 keyPressEvent():是键按下的事件函数,当键被按下和键被按下时间足够长时可以自动重复该函数就被调用。 focusInEvent():当窗口部件获得键盘焦点时调用该函数。 focusOutEvent():与focusInEvent()函数不同

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号