Qt是桌面,嵌入式和移动的跨平台应用开发框架。支持的平台包括Linux,OS X,Windows,VxWorks,QNX,Android,iOS,BlackBerry,Sailfish OS等。
Qt本身不是一种编程语言。它是一个用C ++编写的框架。但它不仅仅只是一个GUI工具包,它提供了在网络,数据库,OpenGL,Web技术,传感器,通信协议(蓝牙,串行端口,NFC),XML和JSON处理,打印,PDF生成等领域的跨平台开发的模块。
Qt拥有自己的集成开发环境(IDE),名为Qt Creator。它运行在Linux,OS X和Windows上,提供智能代码完成,语法高亮,集成帮助系统,调试器和分析器集成以及所有主要版本控制系统(例如git,Bazaar)的集成。
Qt5采用新的模块化代码库,使得移植更加简单。只需移植所需模块即可。这点在进行源码编译时非常有用,
到时可以体会到其便捷性,同时开发者也可以将自己开发的模块注册到Qt5模块系统内,然后便可以像使用Qt5模块一样使用自己的模块。
Qt5将所有功能模块分为三部分:Qt基本模块(Qt Essentials),Qt扩展模块(Qt Add-Ons),Qt开发工具(Qt tools)。
基本模块:定义了适用于所有平台的基础功能,是Qt的核心。
扩展模块:针对某种特殊目的的额外模块,这些模块仅在某个或某些平台才是可用,或者虽然对所有平台均可用但不是通用目的的,如Bluetooth、特效Qt GraphicalEffects 、串口通信Qt SerialPort等。
开发工具:Qt帮助系统、Qt设计器
如果想了解更详细的资料,请访问Qt官网关于模块部分的文档:
http://doc.qt.io/qt-5/qtmodules.html
Qt5支持的平台之上是平台抽象层QPA,在QPA之上紫色背景的组块都是Qt GUI模块的内容,它们被分为两类:
一类以OpenGL为核心,是现在最新的Qt Quick 2和Qt Webkit的基础;
一类以辅助访问和输入方式为基础的一般图形显示类,它们是经典的Qwidget部件类和Qt Quick 1的基础。
Qt Quick 是QML的一个数据类型和功能的标准库,包含了可视化类型、交互类型、动画、模型和视图、粒子特效和渲染等。它为QML应用程序提供两种接口:使用QML语言创建应用的QML接口和使用C++语言扩展QML的C++接口。
特点优势:
1.使用QML声明式语言开发应用程序表示层
2.把UI设计和业务逻辑完全分开
3.使用OpenGL作为图形管线进行渲染,在嵌入式和移动平台有卓越性能
QML(Qt Meta-Object Language,Qt 元对象语言),是用于描述应用程序用户界面的声明式可编程语言,高可读性,容易实现复用和自定义。
QML提供了类似JSON的声明式语法,提供了必要的JavaScript语句和动态属性绑定的支持。
Qt QML模块定义并实现了QML语言以及其引擎框架,允许开发者以自定义类型和集成JavaScript 与C++代码的方式来扩展 QML语言。
Qt QML模块将QML代码、JavaScript和C++集成在一起,既提供了QML接口,又提供了C++接口。可以很方便的使用 C++扩展QML,比如C++数据模型、C++自定义功能类等,其使用C++以一定规则实现后,并将C++类注册到QML引擎中,便可以在QML中使用C++类中的数据成员、成员函数、信号以及槽。