第部分Qt图形编程

上传人:012****78 文档编号:127120388 上传时间:2020-03-30 格式:PPT 页数:59 大小:983KB
返回 下载 相关 举报
第部分Qt图形编程_第1页
第1页 / 共59页
第部分Qt图形编程_第2页
第2页 / 共59页
第部分Qt图形编程_第3页
第3页 / 共59页
第部分Qt图形编程_第4页
第4页 / 共59页
第部分Qt图形编程_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《第部分Qt图形编程》由会员分享,可在线阅读,更多相关《第部分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 2Qt Embedded开发入门7 3实验内容7 4小结7 5思考与练习 本章课程 4 目前的桌面机操作系统大多有着美观 操作方便 功能齐全的GUI 图形用户界面 例如KDE或者GNOME GUI 图形用户界面 是指计算机与其使用者之间的对话接口 可以说

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

3、6 7 1 1Qt EmbeddedQt Embedded是Trolltech公司 目前已被Nokia收购 为嵌入式系统开发的Qt版本 从Qt4 1版本开始 Qt Embedded改名为QtopiaCore 又从Qt4 4 1版本开始 QtopiaCore又改名为QtforEmbeddedLinux 7 1嵌入式GUI简介 7 7 1 1Qt EmbeddedQt Embedded的优缺点 7 1嵌入式GUI简介 8 7 1 2MiniGUIMniGUI由魏永明先生和众多志愿者开发 是面向实时嵌入式系统的轻量级图形用户界面支持系统 自1999年初遵循GPL条款发布第一个版本以来 MiniGUI

4、已广泛应用于手持信息终端 机顶盒 工业控制系统及工业仪表 便携式多媒体播放器 查询终端等产品和领域 目前 MiniGUI已成为跨操作系统 跨硬件平台的图形用户界面支持系统 可在Linux uClinux VxWorks eCos uC OS II pSOS ThreadX Nucleus OSE等操作系统以及Win32平台上运行 已验证的硬件平台包括ix86 ARM PowerPC MIPS DragonBall ColdFire等等 MiniGUIV2 0为基于嵌入式Linux的高端嵌入式设备提供了完整的多进程支持 从而将MiniGUI从中端市场带到了高端市场 最新的MiniGUIV3 0则

5、是继2 0之后的一个重要增强 增加了如外观渲染器技术 双向文本支持 透明控件 独立滚动条控件 UPF字体和位图字体等新的特性 7 1嵌入式GUI简介 9 7 1 2Microwindow TinyX等它由魏永明先生和众多志愿者开发 是面向实时嵌入式系统的轻量级图形用户界面支持系统 自1999年初遵循GPL条款发布第一个版本以来 MiniGUI已广泛应用于手持信息终端 机顶盒 工业控制系统及工业仪表 便携式多媒体播放器 查询终端等产品和领域 目前 MiniGUI已成为跨操作系统 跨硬件平台的图形用户界面支持系统 可在Linux uClinux VxWorks eCos uC OS II pSOS

6、 ThreadX Nucleus OSE等操作系统以及Win32平台上运行 已验证的硬件平台包括ix86 ARM PowerPC MIPS DragonBall ColdFire等等 MiniGUIV2 0为基于嵌入式Linux的高端嵌入式设备提供了完整的多进程支持 从而将MiniGUI从中端市场带到了高端市场 最新的MiniGUIV3 0则是继2 0之后的一个重要增强 增加了如外观渲染器技术 双向文本支持 透明控件 独立滚动条控件 UPF字体和位图字体等新的特性 7 1嵌入式GUI简介 10 7 1 3Microwindow TinyX等MicrowindowsOpenSourceProje

7、ct成立的宗旨在于针对体积小的装置 建立一套先进的视窗环境 在Linux桌面上通过交叉编译可以很容易地制作出Microwindows的程序 Microwindows能够在没有任何操作系统或其他图形系统的支持下运行 它能对裸显示设备进行直接操作 这样 Microwindows就显得十分小巧 便于移植到各种硬件和软件系统上 然而Microwindows的免费版本进展一直很慢 几乎处于停顿状态 而且至今为止 国内没有任何一家对Microwindows提供全面技术支持 服务和担保的专业公司 TinyXServer是XFree86Project的一部分 由KeithPachard发展起来的 而他本身就是

8、XFree86专案的核心成员之一 一般的XServer都过于庞大 因此KeithPackard就以XFree86为基础 精简而成TinyXServer 它的体积可以小到几百KB 非常适合应用于嵌入式环境 就纯XWindowSystem搭配TinyXServer架构来说 其最大的优点就是具有很好的弹性开发机制 并能大大提高开发速度 因为与桌面的X架构相同 因此相对于很多以Qt GTK FLTK等为基础开发的软件可以很容易地移植过来 7 1嵌入式GUI简介 11 常见GUI参数比较 7 1嵌入式GUI简介 12 7 2 1Qt Embedded介绍架构Qt Embedded以原始Qt为基础 并做了

9、许多出色的调整以适用于嵌入式环境 Qt Embedded通过QtAPI与LinuxI O设施直接交互 成为嵌入式Linux端口 同Qt X11相比 Qt Embedded很省内存 因为它不需要一个X服务器或是Xlib库 它在底层抛弃了Xlib 采用framebuffer 帧缓冲 作为底层图形接口 同时 将外部输入设备抽象为keyboard和mouse输入事件 Qt Embedde的应用程序可以直接写内核缓冲帧 这避免开发者使用繁琐的Xlib Server系统 7 2Qt Embedded开发入门 Qt Embedded与QtX11的linux版本的比较 13 7 2 1Qt Embedded介

10、绍Qt Embedded组件窗口系统字体输入设备机输入法Qt的开发环境 7 2Qt Embedded开发入门 14 7 2 1Qt Embedded介绍 Qt的开发环境Qt Embedded的开发环境可以取代那些我们熟知的UNIX和Windows开发工具 它提供了几个跨平台的工具使得开发变得迅速和方便 尤其是它的图形设计器 UNIX下的开发者可以在PC机或者工作站使用虚拟缓冲帧 从而可以模仿一个和嵌入式设备的显示终端大小 像素相同的显示环境 嵌入式设备的应用可以在安装了一个跨平台开发工具链的不同的平台上编译 最通常的做法是在一个UNIX系统上安装跨平台的带有libc库的GNUC 编译器和二进制

11、工具 在开发的许多阶段 一个可替代的做法是使用Qt的桌面版本 7 2Qt Embedded开发入门 15 7 2 1Qt Embedded介绍 Qt的支撑工具qmake是一个为编译Qt Embedded库和应用而提供的Makefile生成器 它能够根据一个工程文件 pro 产生不同平台下的Makefile文件 qmake支持跨平台开发和影子生成 影子生成是指当工程的源代码共享给网络上的多台机器时 每台机器编译链接这个工程的代码将在不同的子路径下完成 这样就不会覆盖别人的编译链接生成的文件 qmake还易于在不同的配置之间切换 designer Qt图形设计器 可以使开发者可视化地设计对话框而不

12、需编写代码 使用Qt图形设计器的布局管理可以生成能平滑改变尺寸的对话框 7 2Qt Embedded开发入门 16 7 2 2Qt Embedded信号和插槽机制机制概述信号和插槽机制是Qt的核心机制 信号和插槽是一种高级接口 应用于对象之间的通信 它是Qt的核心特性 也是Qt区别于其他工具包的重要地方 信号和插槽是Qt自行定义的一种通信机制 它独立于标准的C C 语言 因此要正确的处理信号和插槽 必须借助一个称为moc MetaObjectCompiler 的Qt工具 该工具是一个C 预处理程序 它为高层次的事件处理自动生成所需要的附加代码 7 2Qt Embedded开发入门 17 7 2

13、 2Qt Embedded信号和插槽机制机制概述对象间信号与槽之间的关系 7 2Qt Embedded开发入门 18 7 2 2Qt Embedded信号和插槽机制信号与插槽的实现Qt的signals关键字指出进入了信号声明区 随后即可声明自己的信号 示例 signals voidmySignal voidmySignal intx voidmySignalParam intx inty 7 2Qt Embedded开发入门 19 7 2 2Qt Embedded信号和插槽机制信号与插槽的实现插槽是普通的成员函数 因此与其他的函数一样 它们也有存取权限 插槽的存取权限决定了谁能够与其相关联 同

14、普通的C 成员函数一样 插槽函数也分为3种类型 即publicslots privateslots和protectedslots publicslots 在这个区内声明的槽意味着任何对象都可将信号与之相连接 这对于组件编程非常有用 用户可以创建彼此互不了解的对象 将它们的信号与槽进行连接以便信息能够正确地传递 protectedslots 在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接 这适用于那些槽 它们是类实现的一部分 但是其界面接口却面向外部 privateslots 在这个区内声明的槽意味着只有类自己可以将信号与之相连接 这适用于联系非常紧密的类 7 2Qt Embedde

15、d开发入门 20 7 2 2Qt Embedded信号和插槽机制信号与插槽的实现插槽也能够被声明为虚函数 这也是非常有用的 插槽的声明也是在头文件中进行的 示例 publicslots voidmySlot voidmySlot intx voidmySignalParam intx inty 7 2Qt Embedded开发入门 21 7 2 2Qt Embedded信号和插槽机制信号与槽关联通过调用QObject对象的connect 函数可以将某个对象的信号与另外一个对象的插槽函数或信号相关联 当发射者发射信号时 接收者的槽函数或信号将被调用 函数定义 boolQObject connec

16、t constQObject sender constchar signal constQObject receiver constchar member static 示例 QLabel label newQLabel QScrollBar scroll newQScrollBar QObject connect scroll SIGNAL valueChanged int label SLOT setNum int 7 2Qt Embedded开发入门 22 7 2 2Qt Embedded信号和插槽机制信号与信号关联classMyWidget publicQWidget public MyWidget signals voidaSignal private QPushButton aButton MyWidget MyWidget aButton newQPushButton this connect aButton SIGNAL clicked SIGNAL aSignal 7 2Qt Embedded开发入门 23 7 2 2Qt Embedded信号和插槽机制信号与信号关联

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

当前位置:首页 > 医学/心理学 > 基础医学

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