本文链接:https://blog.csdn.net/xiaoqingyi_1014/article/details/73702297
1. 源起
由于工作需要,于2017年初开始接触Qt,之前只听过Qt大名,一直没有学习研究过,这次,趁此机会,领略一番Qt之美。虽说Qt4很经典,但本人还是决定从最新版本开启我的Qt之旅---Qt5.8.0。
2. Qt5 简介
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)的集成。
3.Qt5架构
模块架构:
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的基础。
4.Qt Quick 和 QML
Qt Quick:
Qt Quick 是QML的一个数据类型和功能的标准库,包含了可视化类型、交互类型、动画、模型和视图、粒子特效和渲染等。它为QML应用程序提供两种接口:使用QML语言创建应用的QML接口和使用C++语言扩展QML的C++接口。
特点优势:
1.使用QML声明式语言开发应用程序表示层
2.把UI设计和业务逻辑完全分开
3.使用OpenGL作为图形管线进行渲染,在嵌入式和移动平台有卓越性能
QML
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++类中的数据成员、成员函数、信号以及槽。
5.学习资料
(1) 一去、二三里:
http://blog.csdn.net/liang19890820/article/details/51752029
(2) 防止上一个链接失效,复制内容如下:
Qt官网
Qt官网: https://www.qt.io
Qt下载:http://www.qt.io/download
Qt所有下载:http://download.qt.io/archive/qt
Qt官方发布下载:http://download.qt.io/official_releases/qt
Open Source下载:http://www.qt.io/download-open-source/#section-2
Qt WiKi:https://wiki.qt.io/Main_Page
社区论坛
国外论坛:
Qt-Centre: http://www.qtcentre.org
一个非常全面的外国网站,有forum、wiki、docs、blogs等。
Qt-forum:http://www.qtforum.org 比较有名的国际Qt编程论坛。
Qt-Apps: http://qt-apps.org
可以找到很多免费的Qt应用,获得源码来学习研究,使用时请遵守相关开源协议。
KDE-Apps: http://kde-apps.org
用过Linux/KDE的应该比较熟悉,里面有许多KDE-Desktop相关的应用。
Qt Software: http://www.qtsoftware.com
提供越来越多的第三方商业软件和开源软件的Qt用户社区。
QUIt Coding: http://quitcoding.com
一群享受前沿技术开发的人才,Qt官方大使项目的成员。
国内论坛:
CSDN Qt论坛: http://bbs.csdn.net/forums/Qt
作为中国最大的IT社区和服务平台,CSDN也在持续的关注Qt的发展,Qt技术社区也
已经上线很久了,可以在里面进行知识传播 - 提问、分享自己的一些学习心得、资
料等。
QTCN开发网:http://www.qtcn.org
国内最早、最活跃的Qt中文社区,内容丰富、覆盖面广、在线人数众多,上面有很
多热心、无私的Qt爱好者,他们会帮助初学者尽快的入门。
Qter开源社区: http://www.qter.org
致力于Qt普及工作!里面富含Qter们开发的实用开源项目和作品,以及一系列优秀
的原创教程 - 图文并茂、简单易学,力争帮助每一位初学者快速入门。
建议: 希望大家经常多去浏览一下,会有很多收获,技术文章往往有一定的深度,初学者可能会不太适应。
---------------------
版权声明:本文为CSDN博主「csdn_qilin」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaoqingyi_1014/article/details/73702297