您现在的位置:首页 > 产品中心 > 编译、仿真/调试产品线 > QT > QT

Qt Create

Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开研发人员提供建立艺术级图形用户界面所需的所有功能。
Qt是digital公司的产品。1996年,Qt进入商业领域,已经成为全世界范围内数千种成功的应用程序的基础。他也是目前流行的Linux的桌面环境KDE的基础,KDE是Linux发行版的主要一个标准组件。

一、 产品特点

l 功能强大的Qt
Qt是一个功能强大的开发框架,它包括广泛的特征,性能与工具,可以开发高性能,跨平台富客户端,以及服务器端的应用程序。
l Qt类库
是一个拥有超过400 C++个类,同时不断扩展的库。它封装了用于端到端应用程序开发所需要的所有基础结构。功能强大的Qt应用程序接口包括成熟的对象模型,内容丰富的总集类,图形有户界面编程与布局设计功能,数据库编程,网络,XML,国际化,OpenGL集成等等。
l Qt设计者
是一个功能强大的GUI布局与窗体构造器,能够在所有支持平台上,以本地化的视图外观与认知,快速开发高性能的用户界面。
l Qt语言家
是一套用来去除国际化工作流程中所带来障碍的工具。使用Qt语言家,开发小组可把应用程序的翻译转换外包给非技术性翻译人员,从而可增加精度,大大提高本地化处理过程。
l Qt助手
一个完全可自定义,重新分配的帮助文件或文档浏览器,它可与基于Qt的应用程序运行。使用Qt助手,开发小组同样能够很大程度上提高文档的处理过程。
l 跨平台的Qt
Qt是用于本地化跨平台应用开发的先进框架。Qt应用程序接口与工具兼容于所有支持平台,让开发员们掌握一个应用程序接口,便可执行与平台非相关的应用开发与配置。通过使用Qt,开发小组们从主要的开发平台,可为主要操作系统创建本地化的应用程序。
Qt可提供于下列平台:
桌面平台(Desktop Platforms)
Qt/Windows(MicrosoftWindows10,8.1,7,XP, 2000 ,NT4,Me/98)(不同的版本)
Qt/X11(Linux, Solaris ,HP-UX,IRIX,AIX,与其它许多Unix变式)
Qt/Mac(Mac OSX)
嵌入式平台(Embedded Platforms)
Qt/Embedded Android(Androidversion2.3.3(API level 10) or later)
Qt/Embedded Linux
Qt/Windows Embedded(Compact and Standard)
Qt/RTOS(QNX,VxWorksand INTEGRITY)
移动平台(Mobile Platform)
Qt/Android(Android version 2.3.3(API level 10) or later)
iOS(iOS 5.0 or later)
WinRT (Windows RT8.1 up or Windows Phone 8.1 up)
Platform Compiler
Ubuntu Linux14.04, X11(64-bit) As provided by Ubuntu
RedHat 6.6, X11(64-bit) As provided by RedHat
openSUSE13.1, X11(64-bit) As provided by SUSE
Microsoft Windows 7(32-bit) MSVC 2010 SP1
Microsoft Windows 7(32-bit) MinGW-buildsgcc4.9.1(32-bit)
Microsoft Windows 8.1(32-bitand64-bit) MSVC 2012 SP2
Microsoft Windows 8.1(32-bitand64-bit) MSVC 2013 SP3
Microsoft Windows Phone8.1(64-bit) MSVC 2013 SP3
Microsoft Windows Runtime 8.1(64-bit) MSVC 2013 SP3
Apple OSX10.8 "Mountain Lion", Cocoa(64-bit) Clang as provided by Apple
Apple OSX10.9"Mavericks",Cocoa(64-bit) Clang as provided by Apple
Apple OSX10.10"Yosemite",Cocoa(64-bit) Clang as provided by Apple
Apple iOS 8(64-bit) Clang as provided by Apple
Google Android4.4 As provided by Google (AndroidNDKRevision10c)
Ubuntu Linux 11.10,X11(32-bitand64-bit) As provided by Ubuntu
Microsoft Windows CE7.0 MSVC 2008 SP1
Apple OSX10.7 "Lion", Cocoa(64-bit) Clang as provided by Apple
(部分平台供参考)

二、 Qt5新特性

Qt5是Qt的新版本。对Qt4做了重大的革新以满足未来应用程序开发框架的技术发展方向。
l 功能强大的模块化架构,结构清晰,开发时只取所需
l 全新的基于OpenGL ES2的Scene Graph 图形引擎,综合提升Qt Quick的界面性能到新的层次
l 采用全新的QPA作为支持操作系统的统一框架。更容易的添加对新的操作系统的支持
l 综合支持新的C++11特性
l 百分之99兼容Qt4应用程序
图2-1 QT组成

2.1 Qt5功能模块

Qt5中的所有功能被划分为两种模块,Qt Essential模块和Qt add-on模块
l Qt Essential模块对于所有的平台均一致,构成了Qt5的基本框架
l 在Qt5的整个版本中将会保持原代码和二进制兼容

Qt Core
Qt Qml
Qt Network
Qt Quick
Qt Gui
Qt Multimedia
Qt Widgets
Qt Webkit
Qt Sql
Qt Webkit Widgets

l Qt add-on模块提供了扩展功能或者是平台特定功能
l 模块自己的版本会保持兼容
l 部分Qt4的旧功能模块,例如Qt Quick1和Qt OpenGL对于客户和开发有意义的往往是Qt add-on模块

Charts (Enterprise licensees only)
Qt Help
Qt Concurrent
Qt Graphical Effects
Qt Print Support
Qt Declarative (Quick1)
Qt DBus
Qt Image Formats
Qt Test lib
Qt OpenGL
Qt Xml Patterns
Qt Xml
Qt Active Qt
Qt Svg
Qt Script &Script Tools

2.2 Qt5新特性

2.2.1 Qt5的新特性——Scene Graph图形渲染引擎

l 基于预定义节点的树状结构
精简化状态机的状态数
采用Z排序减少过度绘制
l 广泛地利用OpenGL ES2.0,更高的渲染效率
嵌入式ARM CortexA8+GPU一般达到60FPS
l 支持在单独线程的渲染
支持客户定制的渲染
在不同的渲染阶段提供了不同信号

Qt5的新特性——QtQuick2与QML2

l QtQuick2的开发需要平台支持OpenGL ES2
Ø 当然依然支持开发不依赖于OpenGL ES2的QtQuick1程序
l 一个QML2的程序依赖于
Ø Qt Core, Qt Gui, QtV8,and Qt Declarative
Ø 注意到widgets已经在Qt Widgets模块中,不再是Qt Gui的一部分
Ø QML2程序基于一个Qt Quick View(Qt Quick module)类的对象,而不是一个widget
l Canvas画布
Ø 提供了基本的图形绘制的API,可以绘制自定义的任意图形
Ø 复杂图形尤其是各种曲线的绘制,例如利用Canvas实现示波器等
l 与HTML5的Canvas API兼容
l Shaders GLSL着色器
l 广泛支持OpenGL Shading Language(GLSL)
l 支持Vertex Shader顶点着色器和Fragment Shader片段着色器
l 全部计算在GPU上运行,效率高的完成复杂的图像处理和特别效果
l Particles粒子系统和Graphic Effects图像特别效果系统的基础
 
l Particles粒子系统
l 提供了利用3D技术模拟特定模糊现象的开发库。方便简单的开发多种动态特别效果
l 支持各种自定义的粒子图源
l 发射轨迹控制
l 每个粒子的速度和加速度控制
 
 

2.2.2 Qt5的新特——Qt Platform Abstraction

l Qt平台抽象层
l 将所有的与底层平台相关的操作抽象成一个标准的接口层,Qt的库只依赖于相关的接口,而与接口的具体实现无关。对不同的平台/操作系统通过插件的方式来实现这些接口层。使Qt本身与底层的平台/操作系统在架构上完全脱离。
l 提供了对于Window,Mac,X11的QPA插件。
l 提供了对于嵌入式的eglfs和directfb插件。
l 提供了对于Android的支持(技术预览版)
l 提供了对于IOS的支持(技术预览版)
l 将会提供对于way land的QPA插件。
l 便于增加对新的操作系统的支持

2.2.3 Qt5的新特性——Qt Multimedia

l Qt multimedia模块提供了对于多媒体的丰富支持。
l 支持传统的C++ Qt widget开发方式。
l 在QML2种提供了多种组件
Ø 支持对视频文件的播放,录制
Ø 对音频文件的播放,录制
Ø 支持摄像头
Ø 支持收音机
l 支持Qt For Android
l 依赖于操作系统提供的多媒体中间件来获得板级的差异化功能。
l Qt5中提供了大量而丰富的实例程
Ø http://qt-project.org/doc/qt-5.0/qtmiltimedia/multimedia-examples.html

2.2.4 Qt5的新特性——Qt3D

l Qt3D模块提供了对于3D特性的封装,提供了便捷的API来快速创建,操控,显示3D对象。
l Qt3D模块提供了针对QML的开发库,支持QML方式的Qt3D开发
l Qt3D模块提供了针对Qt Widget的开发库,支持C++方式的Qt3D开发

Qt5的新特性——Signal和Slot

l 元对象系统升级到第7版,基于模板方式的信号和槽函数的连接机制
l slot无需特殊的语法
Ø 去掉了slot关键字
Ø 不再需要Q_OBJECT宏
l 连接时直接使用函数指针
Ø Connet(slider,& QSlider::valueChanged,spinbox,& QSpinBox::setValue)
l 支持非成员函数的slot
Ø Static void printValue(intvalue) {...}
Ø Connect(slider,&QSlider::valueChanged, &printValue)

2.2.5 Qt5的新特性——很多重要的改进

l Qt Network,改进了对于IPv6的支持
l 将Widget从Qt Gui模块拿出生成性新的Qt Widget模块
l 支持C++11
l 支持JSON
l Unicode6.2源代码为utf8格式
l Qt Webkit升级至Webkit2.2
Ø 支持新的HTML5特性
Ø Webkit2在单独线程里运行,更稳定,不会阻塞UI线程