本文章转载自www.yafeilinux.com,本人仅仅转载,不承担一切责任

零、QtQt Creator介绍

http://www.yafeilinux.com/wp-content/uploads/2011/02/qtlogo.pngQt 是一个跨平台应用程序和 UI 开发框架。使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。

Qt Creator 是全新的跨平台 Qt IDE,可单独使用,也可与 Qt 库和开发工具组成 一套完整的SDK. 其中包括:高级 C++ 代码编辑器,项目和生成管理工具,集成的上下文相关的帮助系统,图形化调试器,代码管理和浏览工具。

二、 Qt功能与特性

直观的 C++ 类库:模块化 Qt C++ 类库提供一套丰富的应用程序生成块 (block),包含了构建高级跨平台应用程序所需的全部功能。具有直观,易学、易用,生成好理解、易维护的代码等特点。

跨桌面和嵌入式操作系统的移植性:使用 Qt,您只需一次性开发应用程序,就可跨不同桌面和嵌入式操作系统进行部署,而无须重新编写源代码,可以说Qt无处不在(Qt Everywhere) 。

http://www.yafeilinux.com/wp-content/uploads/2011/02/everyw.jpg

具有跨平台 IDE 的集成开发工具:Qt Creator 是专为满足 Qt 开发人员需求而量身定制的跨平台集成开发环境 (IDE)Qt Creator 可在 WindowsLinux/X11 Mac OS X 桌面操作系统上运行,供开发人员针对多个桌面和移动设备平台创建应用程序。

在嵌入式系统上的高运行时间性能,占用资源少。

三、 Qt Creator功能和特性

http://www.yafeilinux.com/wp-content/uploads/2011/02/qtcreator.png复杂代码编辑器Qt Creator 的高级代码编辑器支持编辑 C++ QML (JavaScript)、上下文相关帮助、代码完成功能、本机代码转化及其他功能。

版本控制Qt Creator 汇集了最流行的版本控制系统,包括 GitSubversionPerforceCVS Mercurial

集成用户界面设计器:Qt Creator 提供了两个集成的可视化编辑器:用于通过 Qt widget 生成用户界面的 Qt Designer,以及用于通过 QML 语言开发动态用户界面的 Qt Quick Designer*

项目和编译管理 :无论是导入现有项目还是创建一个全新项目,Qt Creator 都能生成所有必要的文件。包括对 cross-qmake Cmake 的支持。

桌面和移动平台Qt Creator 支持在桌面系统和移动设备中编译和运行 Qt 应用程序。通过编译设置您可以在目标平台之间快速切换。

Qt 模拟器Qt模拟器是诺基亚 Qt SDK 的一部分,可在与目标移动设备相似的环境中对移动设备的 Qt 应用程序进行测试。

http://www.yafeilinux.com/wp-content/uploads/2011/02/qtcreatorbreakdown.png

四、 Qt的历史

五、 Qt所支持的平台

http://www.yafeilinux.com/wp-content/uploads/2011/02/02.jpg

  1. 嵌入式 Linux Embedded Linux

Qt for Embedded Linux® 是用于嵌入式 Linux 所支持设备的领先应用程序架构。您可以使用 Qt 创建具有独特用户体验的具备高效内存效率的设备和应用程序。Qt 可以在任何支持 Linux 的平台上运行。Qt 的直观 API,让您只须少数几行代码便可以更短的时间实现更高端的功能。

特点:1. 用于Linux 的紧凑的视窗系统;2. 用于广泛的应用程序处理器的开发;3. 移植桌面代码至嵌入式平台,或通过重新编译,反之亦然;4. 编译移除不常使用的组件与功能;5. 利用系统资源并实现本地化性能;6. 开发嵌入式设备犹如开发桌面系统一样轻松简单。

Qt 除了提供所有 工具 以及 API  类库 ,( 如 WebKit ) 外,Qt for Embedded Linux 还提供用于最优化嵌入式开发环境的主要组件。

紧凑高效的视窗系统 (QWS)Qt 构建在标准的 API 上,应用于嵌入式 Linux 设备,并带有自己的紧凑视窗系统。基于 Qt 的应用程序直接写入Linux 帧缓冲,解除了您对 X11 视窗系统的需求。具有减少内存消耗,占位更小,可利用硬件加速图形的优势,可编译移除不常使用的组件与功能等特点。

虚拟帧缓冲 (QVFb)Qt for Embedded Linux 提供一个虚拟帧缓冲器,可以采用点对点逐像素匹配物理设备显示。具有真实的测试构架,在桌面系统上嵌入式测试,模拟物理设备显示的宽度、高度与色深等特点。

进程间通讯 (IPC) IPC (进程间通讯)可以创建丰富的多应用程序用户体验。定义进程间通讯的两个主要概念即:信道与消息。可以进程监听并向信道发送消息,任何时候只要监听到一个进程便可创建信道。

扩展的字体格式:Qt 支持嵌入式 Linux 上的多种字体格式,包括:TrueType®, Postscript® Type1 Qt 预呈现字体。Qt 扩展了Unicode 支持,包括:构建时自动数据抽取和运行时自动更新。另外Qt还提供定制字体格式的插件,允许在运行时轻松添加新字体引擎。应用程序间的字体共享功能可以提 高内存效率。

基本要求:

开发环境:Linux  内核 2.4 或更高;GCC 版本 3.3 或更高;用于 MIPS® GCC 版本 3.4. 或更高。

占用存储空间:存储空间取决于配置,压缩后: 1.7 – 4.1 MB,未压缩: 3.6 – 9.0 MB

硬件平台:易于载入任何支持带 C++ 编译器和帧缓冲器驱动 Linux 的处理器。支持 ARM®, x86®, MIPS®, PowerPC®

2.Mac 平台

Qt 包括一套集成的开发工具,可加快在 Mac 平台上的开发。在编写 Qt 时,并不需要去设想底层处理器的数字表示法、字节序或架构。要在 Apple 平台上支持 Intel 硬件,Qt 客户只需重新编辑其应用程序即可。

3. Windows平台

使用 Qt,只需一次性构建应用程序,无须重新编写源代码,便可跨多个 Windows 操作系统的版本进行部署。Qt 应用程序支持 Windows VistaServer 2003XPNT4Me/98 Windows CE

4. Linux/X11平台

Qt 包括一套集成的开发工具,可加快在 X11 平台上的开发。Qt 由于是  KDE 桌面环境的基础,在各个 Linux 社区人尽皆知。几乎 KDE 中的所有功能都是基于 Qt 开发的, 而且 Qt 是全球社区成员用来开发 成千上万的开源 KDE 应用程序的基础。

5. Windows CE/Mobile

Qt 是用 C++ 开发的应用程序和用户界面框架。通过直观的 API,您可以使用 Qt 为大量的设备编写功能丰富的高性能应用程序。Qt 包括一套丰富的工具集与直观的API,意味着只须少数几行代码便可以更短的时间实现更高端的功能。

主要特点:1.硬件依存性极小;2.支持多数现有的 Windows CE 配置;3. 对于自定义的硬件配置亦轻松构建;4. 移植桌面代码至嵌入式平台,或通过重新编译,反之亦然;5. 编译移除不常使用的组件与功能;6. 利用系统资源并实现高性能;7. 开发嵌入式设备尤如开发桌面系统一样轻松简单。

Qt 除了提供所有 工具 以及 API  类库 外,Qt for Windows CE 还提供用于最优化嵌入式开发环境的附加功能。

本地化和可定制的外观:Qt 在使用时,可以支持 Windows Mobile Windows CE 两种样式。 在运行时,Qt 应用程序将检测使用哪一种样式。 采用 Qt 样式表单,您只需要花费用于传统 UI 风格的少许时间和代码行,便可以轻松定制您的应用程序外观。特点:基于HTML 层叠式样式表 (CSS);适用于全部 widget;任何熟悉 CSS 技术的人员都可以定义复杂的样式。

先进的文本布局引擎:Qt for Windows CE 支持 TrueType® 和点阵字体。同时 Qt 还支持扩展的 Unicode 和从右至左的书写语言。Qt 的富文本引擎增加了新的功能用于复杂的文本布局,包括制表和路径追踪,以及环绕图形的文本。

基本要求:

开发环境: Microsoft® Visual Studio® 2005 (Standard Edition) 或更高ActivePerl 

占用存储空间:紧凑配置 – 4.8 MB,全配置 – 8.4 MB

操作系统:Windows CE 5 或更高,Windows Mobile 5 或更高。

硬件平台:支持 ARM®, x86®( SH4® MIPS® 上编译)

6. 塞班平台(Symbian

Qt 通过和S60 框架的集成为 Symbian 平台提供了支持。在最新版的Qt SDK 1.1中我们可以直接生成可以在塞班设备上运行的sis文件。

7. MeeGo平台 (Maemo 6 现更名为 MeeGo)

Qt 是一个功能全面的应用程序和用户界面框架,用来开发Maemo 应用程序,也可跨各主要设备和桌面操作系统部署这些程序且无需重新编写源代码的。 如果您在多数情况下开发适用于 SymbianMaemo MeeGo 平台的应用程序,可以使用免费 LGPL 授权方式的 Qt

Qt 将为诺基亚设备运行 MeeGo (Harmattan) 提供依托,并可为所有即将推出的 MeeGo 设备中的应用程序开发提供 API,为 Qt 开发人员提供了更多平台。不久,MeeGo 设备就会完全支持 (X11) Qt

六、 Qt类库

模块化 Qt C++ 类库提供一套丰富的应用程序生成块 (block),包含了生成高级跨平台应用程序所需的全部功能。

http://www.yafeilinux.com/wp-content/uploads/2011/02/class_library.png
1.
先进的图形用户界面(GUI):Qt为您在桌面与嵌入式平台上开发先进的GUI应用程序,带来所有需要的功能。Qt使用所支持平台的本地化图形API,充分利用系统资源并给予应用程序本地化的界面。

从按钮和对话框到树形视图与表格都具有完整的控件(窗体)

自动缩放,字体、语言与屏幕定位识别布局引擎

支持抗锯齿、矢量变形以及可缩放矢量图形 (SVG)

具有样式API和窗体样式表,可完全自定义用户界面

支持嵌入式设备的硬件加速图形和多重显示功能

2.基于OpenGL ®OpenGL ®Es3D图形:OpenGL® 是一个标准的图形库,用于构建跨平台和支持硬件加速的高性能可视化应用程序。虽然OpenGL完美支持3D图形,但却不支持创建应用程序用户界面。Qt通过与OpenGL 的紧密集成解决了这一难题。

在您的应用程序中轻松加入3D图形

在嵌入式Linux Windows CE 平台上使用OpenGL ESOpenGL绘画引擎

利用系统资源实现最佳图形性能

支持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功能,WebKitKDE项目下基于 KHTML的开放源web浏览器引擎。目前 Apple®Google™ Nokia等公司使用Qt WebKit集成。

web与本地内容和服务整合在单一的富应用程序当中

快速创建整合实时web内容与服务的应用程序

使用集成在本地代码中的 HTML Java Script

完全控制跨平台的浏览器环境

9.网络连接:Qt 让您网络编程更简单,并支持跨平台网络编程。

完整的客户/服务器插口提取

支持 HTTPFTPDNS 与异步 HTTP 1.1

无论HTML XML或图象与媒体文件,它都可以存取所有类型的数据

10. XMLQt 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 3JavaScript 1.5的基础)

为简化的对象间通讯使用Qt的信号与槽机制

开创新的契机将脚本与您的Qt应用程序相集成

12.数据库:Qt 帮助您将数据库与您的Qt应用程序无缝集成。Qt支持所有主要的数据驱动,并可让您将SQL发送到数据库服务器,或者让 Qt SQL类自动生成 SQL 查询。

支持所有主要的数据库驱动

以多种视图或数据识别表单方式显示数据

七、 Qt Quick介绍

http://www.yafeilinux.com/wp-content/uploads/2011/02/qtquick.png

Qt Quick是在Qt 4.7中被引进的一项技术。Qt Quick 是一种高级用户界面技术,开发人员和设计人员可用它协同创建动画触摸式用户界面和应用程序。它由三部分构成:1.QML:像 JavaScript 一样的声明式语言;2. Qt Creator:在 Qt IDE中的直观工具;3. Qt Declarative:强大的 C++ 模块。

1.主要组成:

QML基于 JavaScript 的直观语言  QML 是一种简便易用的语言,开发人员与用户界面设计人员无需任何 C++ 知识,即可用其描绘出用户界面的外观和功能。

面向开发人员和设计人员的共享工具:Qt Creator IDE 2.1 版将集成一套开发人员与用户界面设计人员可共享,用以创建和实施 Qt Quick 项目的通用工具。

通过 C++ 推动 QML 应用程序: Qt 库中的全新 Declarative 模块支持生成动态可定制的用户界面,以及通过 C++ 拓展 QML 应用程序。

2.功能特点:

快速开发动画式流畅多变的用户界面:通过直观的 QML 语言和一套丰富的 QML Elements——UI 和行为生成块——您可以快速创建出令人印象深刻的用户界面,比您想象的还要快。

无需 C++ 知识:如果您具有 JavaScript 的经验或掌握基本的网络技术 ( HTML CSS),您就可以通过 QML 取得非常不错的成果。

瞄准数以百万计的触摸屏设备:使用 Qt Quick,您可以为数以百万计的 Symbian MeeGo 设备生成应用程序,或为各种类型的触摸屏消费类电子设备创建用户界面。

3.应用领域:

汽车信息娱乐系统 UICybercom Group 的用户界面设计人员与开发人员尝试使用 Qt Quick 为其汽车信息娱乐平台设计 UI——并取得了令人满意的结果。

社交媒体电视:mixd.tv 使用 Qt Quick 为其跨平台网络电视应用程序创建 UI,其用户可以通过社交媒体频道访问和共享在线视频的内容。

联网汽车:Qt 的认证合作伙伴 Digia 很快学会了 Qt Quick 并用其创建出了包括导航、电话、游戏和音乐功能的高级汽车 UI

八、 Qt授权

http://www.yafeilinux.com/wp-content/uploads/2011/02/03.jpg

The Qt Commercial Developer License is the correct license to use for the development of proprietary and/or commercial software with Qt where you do not want to share any source code.

You must purchase a Qt Commercial Developer License from us or from one of our authorized resellers before you start developing commercial software as you are not permitted to begin your development with an open source licensed Qt version and convert to the commercially license version at a later . The Qt Commercial Developer License includes a restriction that prevents the combining of code developed with the Qt GNU LGPL v. 2.1 or GNU GPL v. 3.0 license versions with commercially licensed Qt code.

This version is available for development of proprietary and commercial applications in accordance with the terms and conditions of the GNU Lesser General Public License version 2.1.

Support services are available separately for purchase.

This version is freely available for the development of open source software governed by the GNU General Public License version  3.0 (“GPL”).

Support services are available separately for purchase.

License Comparison Chart

Commercial

LGPL

GPL

License cost

License fee charged

No license fee

No license fee

Must provide source code changes to Qt

No, modifications can be closed

Source code must be provided

Source code must be provided

Can create proprietary applications

Yes – No source code must be disclosed

Yes, in accordance with the LGPL v. 2.1 terms

No, applications are subject to the GPL and source code must be made available

Updates provided

Yes, immediate notice sent to those with a valid support and update agreement

Yes, made available

Yes, made available

Support

Yes, to those with a valid support and update agreement

Not included but available separately for purchase

Not included but available separately for purchase

Charge for Runtimes

Yes, for some embedded uses

No

No

结语:对于Qt Qt Creator有了大致的了解了,已经迫不及待想马上开始Qt的学习了吧!那么从我们的Qt Creator系列教程开始吧,让你快速进入Qt的开发行列之中!