1、Qt5 架构
qt 5将所有模块分为三个部分:Qt基本模块(Essentials)、Qt扩展模块(Add-ons)、 开发工具(Tools)
基本模块定义了基础功能,是核心,兼容所有平台。包括:
- Qt Core 核心类库,其它模块基于此模块之上
- Qt Test 单元测试工具
- Qt Sql
- Qt Network
- Qt Gui Gui开发类库,包括OpenGL
- Qt Qml
- Qt Quick 高度动画效果的应用程序框架\Controls\Layouts\Dialog,建立在qml和javascript基础之上
- Qt Multimedia 视频、音频、无线电、摄像头等支持
- Qt WebKit webkit
- Qt Widgets qt gui 的C++扩展
扩展模块定义的是对某些特殊目的的额外模块。不一定支持所有模块
- Active Qt windows上提供对ActiveX 和COM的支持
- Qt Android Extras 提供对android专用API的支持
2、图形界面库的架构
Qt 5 的Qt GUI 不再是一个全面的图形界面类库,而是为各种图形提供一般的处理,包括系统 集成,事件处理,OpenGL ,2D绘图,字体和文本等。而图形部件被移到了Qt Widgets 里面了。
结构图
(Win Mac X11 Symbian Android ...) -> QPA -> gui
即 三个层次:
- 各种平台 如windows,android,x11,symbian等等
- 平台抽象层(QPA)
- GUI 模块 GUI模块分为两类:
- OpenGL为核心的,是qt quick2 和 Qt WebKit的基础。包括QSurface、QOpenGL、QWindow、QScreen、QOpenGLContext
- 一般图形类,是Qt Widgets和qt quick1的基础
3、Qt 5的新特性
- 支持所有移动平台,如android,ios,blackberry 10,winrt
- 图形处理能力和性能超强。 使用OpenGL的场景图来加速Qt Quick 的图形显示,包括动画,图形效果,粒子系统
- Qt Quick 为qml的基础框架。包括一下特色:
- Canvas html5 api
- Shader Effects
- Particle Effects 粒子系统
- SPrites 精灵动画效果
- Offline storage javascript api
- Window 顶级窗口
- OpenGL
- 设计界面变得简单 qt quick
- 传感器和位置 可以在便携设备上获取传感器信息
- WebKit 和 HTML5
- 多媒体
- 特定平台的附加功能
- 信号槽机制做了变更,支持编译时类型检查,同时支持对任意函数的支持,包括全局函数,静态函数,匿名函数都可以作为槽函数
- 支持json解析
- 引入了对插件形式和文件内容的Mime类型识别
- Perl的正则表达式引擎
- c++ 11的支持