嵌入式应用程序设计 教学课件 ppt 华清远见嵌入式学院 穆煜 第7章 Qt图形编程

上传人:E**** 文档编号:89407891 上传时间:2019-05-24 格式:PPT 页数:59 大小:1.73MB
返回 下载 相关 举报
嵌入式应用程序设计 教学课件 ppt 华清远见嵌入式学院 穆煜 第7章 Qt图形编程_第1页
第1页 / 共59页
嵌入式应用程序设计 教学课件 ppt 华清远见嵌入式学院 穆煜 第7章 Qt图形编程_第2页
第2页 / 共59页
嵌入式应用程序设计 教学课件 ppt 华清远见嵌入式学院 穆煜 第7章 Qt图形编程_第3页
第3页 / 共59页
嵌入式应用程序设计 教学课件 ppt 华清远见嵌入式学院 穆煜 第7章 Qt图形编程_第4页
第4页 / 共59页
嵌入式应用程序设计 教学课件 ppt 华清远见嵌入式学院 穆煜 第7章 Qt图形编程_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《嵌入式应用程序设计 教学课件 ppt 华清远见嵌入式学院 穆煜 第7章 Qt图形编程》由会员分享,可在线阅读,更多相关《嵌入式应用程序设计 教学课件 ppt 华清远见嵌入式学院 穆煜 第7章 Qt图形编程(59页珍藏版)》请在金锄头文库上搜索。

1、嵌入式应用程序设计 第7章 Qt图形编程,2,第1章 搭建嵌入式Linux开发环境 第2章 嵌入式文件I/O编程 第3章 嵌入式Linux多任务编程 第4章 嵌入式Linux进程间通行 第5章 嵌入式Linux多线程编程 第6章 嵌入式Linux网络编程 第7章 Qt图形编程 第8章 嵌入式Linux设备驱动编程 第9章 Qt聊天项目设计,课程安排:,3,7.1 嵌入式GUI简介 7.2 Qt/Embedded开发入门 7.3 实验内容 7.4 小结 7.5 思考与练习,本章课程:,4,目前的桌面机操作系统大多有着美观、操作方便、功能齐全的GUI(图形用户界面),例如KDE或者GNOME。GU

2、I(图形用户界面)是指计算机与其使用者之间的对话接口,可以说,GUI是当今计算机技术的重大成就。它的存在为使用者提供了友好便利的界面,并大大地方便了非专业用户的使用,使得人们从繁琐的命令中解脱出来,可以通过窗口、菜单方便地进行操作。 在嵌入式系统中,GUI的地位也越来越重要,但是不同于桌面机系统,嵌入式GUI要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。另外,由于嵌入式系统硬件本身的特殊性,嵌入式GUI应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用需求。,7.1 嵌入式GUI简介,5,嵌入式GUI特点 体积小; 运行时耗用系统资源小; 上层接口与硬件无关,

3、高度可移植; 高可靠性; 在某些应用场合应具备实时性。,7.1 嵌入式GUI简介,6,7.1.1 Qt/Embedded Qt/Embedded是Trolltech公司(目前已被Nokia收购)为嵌入式系统开发的Qt版本。从Qt 4.1版本开始,Qt/Embedded改名为Qtopia Core,又从Qt 4.4.1版本开始,Qtopia Core又改名为Qt for Embedded Linux.,7.1 嵌入式GUI简介,7,7.1.1 Qt/Embedded Qt/Embedded的优缺点:,7.1 嵌入式GUI简介,8,7.1.2 MiniGUI MniGUI由魏永明先生和众多志愿者开

4、发,是面向实时嵌入式系统的轻量级图形用户界面支持系统。自1999年初遵循GPL条款发布第一个版本以来,MiniGUI已广泛应用于手持信息终端、机顶盒、工业控制系统及工业仪表、便携式多媒体播放器、查询终端等产品和领域。目前,MiniGUI已成为跨操作系统、跨硬件平台的图形用户界面支持系统,可在Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE等操作系统以及Win32平台上运行,已验证的硬件平台包括ix86、ARM、PowerPC、MIPS、DragonBall、ColdFire等等。MiniGUI V2.0为基于嵌入式Linu

5、x的高端嵌入式设备提供了完整的多进程支持,从而将MiniGUI从中端市场带到了高端市场。最新的MiniGUI V3.0则是继2.0之后的一个重要增强,增加了如外观渲染器技术、双向文本支持、透明控件、独立滚动条控件、UPF字体和位图字体等新的特性。,7.1 嵌入式GUI简介,9,7.1.2 Microwindow、Tiny X等 它由魏永明先生和众多志愿者开发,是面向实时嵌入式系统的轻量级图形用户界面支持系统。自1999年初遵循GPL条款发布第一个版本以来,MiniGUI已广泛应用于手持信息终端、机顶盒、工业控制系统及工业仪表、便携式多媒体播放器、查询终端等产品和领域。目前,MiniGUI已成为

6、跨操作系统、跨硬件平台的图形用户界面支持系统,可在Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE等操作系统以及Win32平台上运行,已验证的硬件平台包括ix86、ARM、PowerPC、MIPS、DragonBall、ColdFire等等。MiniGUI V2.0为基于嵌入式Linux的高端嵌入式设备提供了完整的多进程支持,从而将MiniGUI从中端市场带到了高端市场。最新的MiniGUI V3.0则是继2.0之后的一个重要增强,增加了如外观渲染器技术、双向文本支持、透明控件、独立滚动条控件、UPF字体和位图字体等新的特

7、性。,7.1 嵌入式GUI简介,10,7.1.3 Microwindow、Tiny X等 Microwindows Open Source Project成立的宗旨在于针对体积小的装置,建立一套先进的视窗环境,在Linux桌面上通过交叉编译可以很容易地制作出Microwindows的程序。Microwindows能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。这样,Microwindows就显得十分小巧,便于移植到各种硬件和软件系统上。 然而Microwindows的免费版本进展一直很慢,几乎处于停顿状态,而且至今为止,国内没有任何一家对Microwindows

8、提供全面技术支持、服务和担保的专业公司。 Tiny X Server是XFree86 Project的一部分,由Keith Pachard发展起来的,而他本身就是XFree86专案的核心成员之一。一般的X Server都过于庞大,因此Keith Packard就以XFree86为基础,精简而成Tiny X Server,它的体积可以小到几百KB,非常适合应用于嵌入式环境。 就纯X Window System搭配Tiny X Server架构来说,其最大的优点就是具有很好的弹性开发机制,并能大大提高开发速度。因为与桌面的X架构相同,因此相对于很多以Qt、GTK+、FLTK等为基础开发的软件可以很

9、容易地移植过来。,7.1 嵌入式GUI简介,11,常见GUI参数比较:,7.1 嵌入式GUI简介,12,7.2.1 Qt/Embedded介绍 架构 Qt/Embedded以原始Qt为基础,并做了许多出色的调整以适用于嵌入式环境。Qt/Embedded通过Qt API与Linux I/O设施直接交互,成为嵌入式Linux端口。同Qt/X11相比,Qt/Embedded很省内存,因为它不需要一个X服务器或是Xlib库,它在底层抛弃了X lib,采用framebuffer(帧缓冲)作为底层图形接口。同时,将外部输入设备抽象为keyboard和mouse输入事件。Qt/Embedde的应用程序可以直

10、接写内核缓冲帧,这避免开发者使用繁琐的Xlib/Server系统。,7.2 Qt/Embedded开发入门,Qt/Embedded与Qt X11 的linux版本的比较,13,7.2.1 Qt/Embedded介绍 Qt/Embedded组件 窗口系统 字体 输入设备机输入法 Qt的开发环境,7.2 Qt/Embedded开发入门,14,7.2.1 Qt/Embedded介绍: Qt的开发环境 Qt/Embedded的开发环境可以取代那些我们熟知的UNIX和Windows开发工具。它提供了几个跨平台的工具使得开发变得迅速和方便,尤其是它的图形设计器。UNIX下的开发者可以在PC机或者工作站使用

11、虚拟缓冲帧,从而可以模仿一个和嵌入式设备的显示终端大小,像素相同的显示环境。 嵌入式设备的应用可以在安装了一个跨平台开发工具链的不同的平台上编译。最通常的做法是在一个UNIX系统上安装跨平台的带有libc库的GNU C+编译器和二进制工具。在开发的许多阶段,一个可替代的做法是使用Qt的桌面版本,7.2 Qt/Embedded开发入门,15,7.2.1 Qt/Embedded介绍: Qt的支撑工具 qmake是一个为编译Qt/Embedded库和应用而提供的Makefile生成器。它能够根据一个工程文件(.pro)产生不同平台下的Makefile文件。qmake支持跨平台开发和影子生成(影子生成

12、是指当工程的源代码共享给网络上的多台机器时,每台机器编译链接这个工程的代码将在不同的子路径下完成,这样就不会覆盖别人的编译链接生成的文件。qmake还易于在不同的配置之间切换。) designer(Qt图形设计器)可以使开发者可视化地设计对话框而不需编写代码。使用Qt图形设计器的布局管理可以生成能平滑改变尺寸的对话框。,7.2 Qt/Embedded开发入门,16,7.2.2 Qt/Embedded信号和插槽机制 机制概述 信号和插槽机制是Qt的核心机制 。信号和插槽是一种高级接口,应用于对象之间的通信,它是Qt的核心特性,也是Qt区别于其他工具包的重要地方。信号和插槽是Qt自行定义的一种通信

13、机制,它独立于标准的C/C+语言,因此要正确的处理信号和插槽,必须借助一个称为moc(Meta Object Compiler)的Qt工具,该工具是一个C+预处理程序,它为高层次的事件处理自动生成所需要的附加代码。,7.2 Qt/Embedded开发入门,17,7.2.2 Qt/Embedded信号和插槽机制 机制概述 对象间信号与槽之间的关系,7.2 Qt/Embedded开发入门,18,7.2.2 Qt/Embedded信号和插槽机制 信号与插槽的实现 Qt的signals关键字指出进入了信号声明区,随后即可声明自己的信号。 示例: signals: void mySignal(); vo

14、id mySignal(int x); void mySignalParam(int x,int y);,7.2 Qt/Embedded开发入门,19,7.2.2 Qt/Embedded信号和插槽机制 信号与插槽的实现 插槽是普通的成员函数,因此与其他的函数一样,它们也有存取权限。插槽的存取权限决定了谁能够与其相关联。同普通的C+成员函数一样,插槽函数也分为3种类型,即public slots、private slots和protected slots。 public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,用户可以创建彼此互不了解的对象,将它

15、们的信号与槽进行连接以便信息能够正确地传递。 protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类实现的一部分,但是其界面接口却面向外部。 private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。这适用于联系非常紧密的类。,7.2 Qt/Embedded开发入门,20,7.2.2 Qt/Embedded信号和插槽机制 信号与插槽的实现 插槽也能够被声明为虚函数,这也是非常有用的。插槽的声明也是在头文件中进行的。 示例: public slots: void mySlot(); void mySlot(i

16、nt x); void mySignalParam(int x,int y);,7.2 Qt/Embedded开发入门,21,7.2.2 Qt/Embedded信号和插槽机制 信号与槽关联 通过调用QObject对象的connect()函数可以将某个对象的信号与另外一个对象的插槽函数或信号相关联,当发射者发射信号时,接收者的槽函数或信号将被调用。 函数定义: bool QObject:connect (const QObject * sender, const char * signal,const QObject * receiver, const char * member) static 示例: QLabel *label = new QLabel; QScrollBar *scroll = new QScrollBar; QObject:connect(scroll, SIGNAL(valueChanged(int),label, SLOT(setNum(int);,7.2 Qt/Embedded开发入门

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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