1、Qt
与Qt Creator
简介
Qt
是一个跨平台应用程序和 UI
开发框架。使用 Qt
您只需一次性开发应用程序,无须从新编写源代码,即可跨不一样桌面和嵌入式操做系统部署这些应用程序。
Qt Creator
是全新的跨平台Qt IDE
,可单独使用,也可与 Qt
库和开发工具组成
一套完整的SDK.
其中包括:高级 C++
代码编辑器,项目和生成管理工具,集成的上下文相关的帮助系统,图形化调试器,代码管理和浏览工具。
2、Qt
功能与特性
- 直观的 C++ 类库:模块化 Qt C++ 类库提供一套丰富的应用程序生成块 (block),包含了构建高级跨平台应用程序所需的所有功能。具备直观,易学、易用,生成好理解、易维护的代码等特色。
- 跨桌面和嵌入式操做系统的移植性:使用 Qt,您只需一次性开发应用程序,就可跨不一样桌面和嵌入式操做系统进行部署,而无须从新编写源代码,能够说Qt无处不在(QtEverywhere) 。
- 使用单一的源代码库定位多个操做系统;
- 经过从新利用代码可将代码跨设备进行部署;
- 无须考虑平台,可从新分配开发资源;
- 代码不受担心平台更改影响的长远考虑 ;
- 使开发人员专一于构建软件的核心价值,而不是维护 API 。
- 具备跨平台 IDE 的集成开发工具:Qt Creator 是专为知足 Qt 开发人员需求而量身定制的跨平台集成开发环境 (IDE)。Qt Creator 可在 Windows、Linux/X11 和 Mac OS X 桌面操做系统上运行,供开发人员针对多个桌面和移动设备平台建立应用程序。
- 在嵌入式系统上的高运行时间性能,占用资源少。
3、Qt Creator
功能和特性
- 复杂代码编辑器:Qt Creator 的高级代码编辑器支持编辑 C++ 和 QML (JavaScript)、上下文相关帮助、代码完成功能、本机代码转化及其余功能。
- 版本控制:Qt Creator 聚集了最流行的版本控制系统,包括 Git、Subversion、Perforce、CVS 和 Mercurial。
- 集成用户界面设计器:Qt Creator 提供了两个集成的可视化编辑器:用于经过 Qt widget 生成用户界面的 Qt Designer,以及用于经过 QML 语言开发动态用户界面的 Qt Quick Designer*。
- 项目和编译管理 :不管是导入现有项目仍是建立一个全新项目,Qt Creator 都能生成全部必要的文件。包括对 cross-qmake 和 Cmake 的支持。
- 桌面和移动平台:Qt Creator 支持在桌面系统和移动设备中编译和运行 Qt 应用程序。经过编译设置您能够在目标平台之间快速切换。
- Qt 模拟器:Qt模拟器是诺基亚 Qt SDK的一部分,可在与目标移动设备类似的环境中对移动设备的 Qt 应用程序进行测试。
4、Qt
的历史
- 1996年Qt 上市
- Qt 已成为数以万计商业和开源应用程序的基础
- Qt 的软件受权机制具备经受市场检验的双重受权(开源与商业)模式
- Qt Software 的前身为 Trolltech(奇趣科技)。 Trolltech (奇趣科技)始创于1994年
- Trolltech (奇趣科技)于2008年6月被 Nokia 收购,加速了其跨平台开发战略
- 2012年8月芬兰IT业务供应商Digia全面收购诺基亚Qt业务及其技术
5、Qt
所支持的平台
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
应用程序支持WindowsVista
、Server 2003
、XP
、NT4
、Me/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
与
类库
外,
Qtfor 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
平台提供了支持。在最新版的QtSDK 1.1
中咱们能够直接生成能够在塞班设备上运行的sis
文件。
7. MeeGo平台 (Maemo 6 现改名为 MeeGo)
Qt
是一个功能全面的应用程序和用户界面框架,用来开发Maemo
应用程序,也可跨各主要设备和桌面操做系统部署这些程序且无需从新编写源代码的。
若是您在多数状况下开发适用于Symbian
、Maemo
或 MeeGo
平台的应用程序,可使用免费 LGPL
受权方式的 Qt
。
Qt
将为诺基亚设备运行MeeGo (Harmattan)
提供依托,并可为全部即将推出的 MeeGo
设备中的应用程序开发提供 API
,为Qt
开发人员提供了更多平台。不久,MeeGo
设备就会彻底支持 (X11) Qt
。
6、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
浏览器引擎。目前Apple®
,Google™
与Nokia
等公司使用Qt WebKit
集成。
- 将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
查询。
- 支持全部主要的数据库驱动
- 以多种视图或数据识别表单方式显示数据
7、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,您能够为数以百万计的 Symbian 和 MeeGo 设备生成应用程序,或为各类类型的触摸屏消费类电子设备建立用户界面。
3.
应用领域:
- 汽车信息娱乐系统 UI:Cybercom Group 的用户界面设计人员与开发人员尝试使用 Qt Quick 为其汽车信息娱乐平台设计 UI——并取得了使人满意的结果。
- 社交媒体电视:mixd.tv 使用 Qt Quick 为其跨平台网络电视应用程序建立 UI,其用户能够经过社交媒体频道访问和共享在线视频的内容。
- 联网汽车:Qt 的认证合做伙伴 Digia 很快学会了 Qt Quick 并用其建立出了包括导航、电话、游戏和音乐功能的高级汽车 UI。
8、Qt
受权
- Qt Commercial Developer License
The Qt Commercial Developer License is the correctlicense to use for the development of proprietary and/or commercial softwarewith Qt where you do not want to share any source code.
You must purchase a Qt Commercial DeveloperLicense from us or from one of our authorized resellers before you startdeveloping commercial software as you are not permitted to begin yourdevelopment with an open source licensed Qt version and convert to thecommercially license version at a later . The Qt Commercial Developer Licenseincludes a restriction that prevents the combining of code developed with theQt GNU LGPL v. 2.1 or GNU GPL v. 3.0 license versi** with commerciallylicensed Qt code.
- Qt GNU LGPL v. 2.1 Version
This version is available for development ofproprietary and commercial applicati** in accordance with the terms andconditi** of the GNU Lesser General Public License version 2.1.
Support services are available separately forpurchase.
- Qt GNU GPL v. 3.0 Version
This version is freely available for the developmentof open source software governed by the GNU General Public Licenseversion 3.0 (“GPL”).
Support services are available separately forpurchase.
|
|
|
|
|
|
|
|
Must provide source code changes to Qt
|
No, modificati** can be closed
|
Source code must be provided
|
Source code must be provided
|
Can create proprietary applicati**
|
Yes - No source code must be disclosed
|
Yes, in accordance with the LGPL v. 2.1 terms
|
No, applicati** are subject to the GPL and source code must be made available
|
|
Yes, immediate notice sent to those with a valid support and update agreement
|
|
|
|
Yes, to those with a valid support and update agreement
|
Not included but available separately for purchase
|
Not included but available separately for purchase
|
|
Yes, for some embedded uses
|
|
|
9、Qt 5
简介
Qt 5是进行Qt C++软件开发基本框架的最新版本,其中Qt Quick技术处于核心位置 。同时Qt 5能继续提供给开发人员使用原生QtC++实现精妙的用户体验和让应用程序使用OpenGl/OpenGL ES图形加速的所有功能。经过Qt 5.0提供的用户接口,开发人员可以更快的完成开发任务,针对触摸屏和平板电脑的UI转变与移植需求,也变得更加容易实现.
2012年12月19日,Digia宣布正式发行Qt 5.0。Qt 5.0是一个全新的流行于跨平台应用程序和用户界面开发框架的版本,可应用于桌面、嵌入式和移动应用程序。Qt 5 在性能、功能和易用性方面作了极大的提高,并将于明年可彻底支持 Android 和 iOS 平台。Digia明确代表要使Qt 成为世界领先的跨平台开发框架。Qt 5在这个过程当中具备重要的意义,它为应用程序开发人员和产品用户提供了最好的用户体验。Qt 5极大地简化了开发过程,让他们可以更快地为多个目标系统开发具备直观用户界面的程序。它还能够很平滑的过分到新的开发模式来知足触摸屏和 Tablet 的需求。
Qt 5的主要优点包括:图形质量;中低端硬件上的高性能;跨平台移植性;支持 C + + 11; QtWebKit 2 支持的 HTML5;大幅改进QML引擎并加入新的 API;易用性并与 Qt 4 版本兼容。
- 出色的图像处理与表现能力:Qt Quick 2 提供了基于GL的工做模式,它包括一个粒子系统和一系列着色效果集合。Qt Quick 2 让复杂图形的细腻动画和变形处理变得更加容易,也确保了低端架构中2D和3D效果的平滑渲染效果和在高端架构中同样的出色。
- 更高效和灵活的研发: JavaScript和QML在保证对C++基础和Qt Widget支持上发挥着重要做用。Qt Webkit 2中一部分功能就在使用或者正考虑经过HTML 5,完全的改变Qt
- 跨平台的移植变得更加简单:对于OS开发人员来讲,因为基础模块和插件模块采用了新的架构,以及Qt跨平台性的继续强化,Qt已经可以运行在全部的环境中了。而咱们的下一步计划:全面的支持iOS和Android系统,如今正在如火如荼的开发中。
Qt 经过使用 OpenGL ES,大大的增长了交付使人印象深入的图形的能力 (OpenGL ES 是一个专门为嵌入式系统和移动设备而制定的图形应用程序编程接口)。这使它更容易开发和部署具备绚丽动画效果的 2D、3D 图形应用,这些应用在各类性能级别的嵌入式设备上获得平滑运行。例如手机、平板电脑和低成本的开发平台包括 Raspberry Pi。Qt5 新的模块化的代码库使得 Qt5 的跨平台移植性变得更简单。它包含了要点模块组和附加模块组,这种设计会减少系统代码库的尺寸。整合的 Qt 平台抽象层还强调跨平台移植性,开发人员能够经过启用开发简便性为多个目标部署。Qt 支持全部主要的桌面操做系统,包括 Windows,Mac OS X 和 Linux。嵌入式操做系统包括嵌入式 Linux、Windows 嵌入式以及最普遍部署实时操做系统的嵌入式设备——VxWorks、Neutrino 和 INTEGRITY和流行的移动操做系统等等。Qt WebKit 2 集成浏览器引擎,容许轻松集成 web 内容和应用程序。它将使 HTML5 开发人员感受轻松自如,基于 Qt WebKit 2,可以开发出兼顾响应能力和本地代码强大功能的混合应用。这些应用能够提供大量的动态内容。
只须要一个简单的从新编译,就能够直接迁移以前为 Qt4 开发的应用程序。