四、Qt类库
模块化 Qt C++ 类库提供一套丰富的应用程序生成块(block),包含了生成高级跨平台应用程序所需的全部功能。
1.先进的图形用户界面(GUI):Qt为您在桌面与嵌入式平台上开发先进的GUI应用程序,带来所有需要的功能。Qt使用所支持平台的本地化图形API,充分利用系统资源并给予应用程序本地化的界面。
- 从按钮和对话框到树形视图与表格都具有完整的控件(窗体)
- 自动缩放,字体、语言与屏幕定位识别布局引擎
- 支持抗锯齿、矢量变形以及可缩放矢量图形 (SVG)
- 具有样式API和窗体样式表,可完全自定义用户界面
- 支持嵌入式设备的硬件加速图形和多重显示功能
2.基于OpenGL ?与OpenGL ?Es的3D图形:OpenGL? 是一个标准的图形库,用于构建跨平台和支持硬件加速的高性能可视化应用程序。虽然OpenGL完美支持3D图形,但却不支持创建应用程序用户界面。Qt通过与OpenGL 的紧密集成解决了这一难题。
在您的应用程序中轻松加入3D图形
- 在嵌入式Linux 与Windows CE 平台上使用OpenGL ES和OpenGL绘画引擎
- 利用系统资源实现最佳图形性能
- 支持Windows 平台上的Direct3D?
3.多线程:多线程编程是一个执行资源密集型操作而不会冻结应用程序用户界面的有效典范。Qt的跨平台多线程功能简化了并行编程,另外它附加的同步功能可以更加轻松地利用多核架构。
- 管理线程、数据和对象更加轻松
- 基于Qt的信号与槽,实现跨线程类型安全的对象间通讯
- 高端API可以编译多线程程序而无须使用底端基元
4.嵌入式设备的紧凑视窗系统:Qt构建在标准的 API基础上,用于具有轻量级window系统的嵌入式 Linux 设备。基于 Qt的应用程序直接写入 Linux 帧缓冲,解除了您对 X11 视窗系统的需求。
- 减少内存消耗,内存占用更小
- 可以编译移除不常使用的组件与功能
- 可以利用硬件加速图形
- 在桌面系统上的虚拟帧缓冲可用于嵌入式开发与调试
5.对象间通讯:在开发用户图形界面中,一个常见的、重复发生系统崩溃与问题的症结根源是如何在不同组件之间进行通信。对于该问题,Qt 的解决方案是信号与槽机制,即执行Observer设计模式。我们可以简单理解为当特殊事件发生的时候,信号就被发出了,一个插槽就是一个函数,被称作特定信号的响应。
- 信号与槽机制是类型安全的(type safe)
- 任意信号都可以连接任意或多个插槽,或跨多个线程
- 简化真正的组件编程
6.2D图形:Qt给您提供一个功能强大的2D图形画布,用以管理和集成大量的图形元素。
- 高精度可视化大量元素
- 将窗体互动嵌入至图形场景中
- 支持缩放、旋转、动画与**变换
7.多媒体框架:Qt使用 Phonon多媒体框架为众多的多媒体格式提供跨桌面与嵌入式操作系统的回放功能。Phonon可以轻松将音频与视频回放功能加入到Qt应用程序当中,并且在每个目标平台上提取多媒体格式与框架。
- 以平**立的方式提供多媒体内容
- 从本地文件读取媒体或读取网络上的流媒体
- 提取Mac上的 QuickTime? ,Windows 上的DirectShow? 以及 Linux 上的Gstreamer
8.WebKit集成:Qt WebKit集成,即Qt集成了WebKit功能,WebKit是KDE项目下基于 KHTML的开放源web浏览器引擎。
- 将web与本地内容和服务整合在单一的富应用程序当中
- 快速创建整合实时web内容与服务的应用程序
- 使用集成在本地代码中的 HTML 与Java Script
- 完全控制跨平台的浏览器环境
9.网络连接:Qt 让您网络编程更简单,并支持跨平台网络编程。
- 完整的客户/服务器插口提取
- 支持 HTTP,FTP,DNS 与异步 HTTP 1.1
- 无论HTML 和XML或图象与媒体文件,它都可以存取所有类型的数据
10.XML:Qt 为XML 文件以及SAX 和 DOM 协议的C++实现,提供了一个流媒体文件读写器。同时 Qt 还包含了 XQuery – 一个简单的类似 SQL的查询语言,用于解析XML文件来选择和聚合所需要的XML元素,并且将它们转换成XML输出或其它格式的输出。
- 仅需少数几行代码便可实现先进的 XML 查询
- 完全支持 XQuery 1.0 和 XPath 2.0
- 在您自己的应用程序中从XML查询、抽取和转换数据
11.脚本引擎:Qt 包含一个完全集成 ECMA 标准的脚本引擎。 QtScript 提供 QObject 集成,把 Qt的信号与槽机制整合成脚本,并且实现了C++ 与脚本的集成。
- 基于ECMA 标准的脚本语言(ECMAScript 3是JavaScript1.5的基础)
- 为简化的对象间通讯使用Qt的信号与槽机制
- 开创新的契机将脚本与您的Qt应用程序相集成
12.数据库:Qt 帮助您将数据库与您的Qt应用程序无缝集成。Qt支持所有主要的数据驱动,并可让您将SQL发送到数据库服务器,或者让 Qt SQL类自动生成 SQL 查询。
- 支持所有主要的数据库驱动
- 以多种视图或数据识别表单方式显示数据
五、Qt Quick介绍
Qt Quick是在Qt4.7中被引进的一项技术。Qt Quick 是一种高级用户界面技术,开发人员和设计人员可用它协同创建动画触摸式用户界面和应用程序。它由三部分构成:1.QML:像 JavaScript 一样的声明式语言;2. Qt Creator:在 Qt IDE中的直观工具;3. Qt Declarative:强大的 C++ 模块。
1.主要组成:
- QML:基于 JavaScript 的直观语言 :QML 是一种简便易用的语言,开发人员与用户界面设计人员无需任何 C++ 知识,即可用其描绘出用户界面的外观和功能。
- 面向开发人员和设计人员的共享工具:Qt Creator IDE2.1 版将集成一套开发人员与用户界面设计人员可共享,用以创建和实施 Qt Quick 项目的通用工具。
- 通过 C++ 推动 QML 应用程序:在 Qt 库中的全新Declarative 模块支持生成动态可定制的用户界面,以及通过 C++ 拓展 QML 应用程序。
2.功能特点:
- 快速开发动画式流畅多变的用户界面:通过直观的 QML 语言和一套丰富的 QMLElements——UI 和行为生成块——您可以快速创建出令人印象深刻的用户界面,比您想象的还要快。
- 无需 C++ 知识:如果您具有 JavaScript 的经验或掌握基本的网络技术 (如 HTML 和 CSS),您就可以通过 QML 取得非常不错的成果。
- 瞄准数以百万计的触摸屏设备:使用 Qt Quick,您可为各种类型的触摸屏消费类电子设备创建用户界面。
3.应用领域:
- 汽车信息娱乐系统 UI:Cybercom Group 的用户界面设计人员与开发人员尝试使用 Qt Quick 为其汽车信息娱乐平台设计 UI——并取得了令人满意的结果。
- 社交媒体电视:mixd.tv 使用 Qt Quick 为其跨平台网络电视应用程序创建 UI,其用户可以通过社交媒体频道访问和共享在线视频的内容。
- 联网汽车:Qt 的认证合作伙伴 Digia 很快学会了 Qt Quick 并用其创建出了包括导航、电话、游戏和音乐功能的高级汽车 UI。