1 Qt概述
1.1 什么是Qt
Qt 是一个跨平台的 C++图形用户界面应用程序框架
Qt是标准 C++ 的扩展, C++的语法在Qt中都是支持的
广泛用于开发GUI(Graphical User Interface)程序,也可用于开发非GUI程序
支持 2D/3D 图形渲染,支持 OpenGL
完全面向对象的,容易扩展,并且允许真正的组件编程。
1.2 Qt的发展史
1991年 Qt最早由奇趣科技开发
1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言
2012年 Qt又被Digia公司收购
2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。
当前Qt最新版本为 6.6.2
1.3 支持的平台
-
MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vista、Win7、win8、win2008、win10、win11
-
Unix/X11 -Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台
-
Macintosh -Mac OS X
-
Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE、Symbian、Symbian^3、Symbian Anna、Symbian Belle、MeeGo、haiku-os。
1.4 Qt 中的模块
Qt类库里大量的类,根据功能分为各种模块,这些模块又分为以下几大类:
-
Qt 基本模块(Qt Essentials):提供了 Qt 在所有平台上的基本功能。
-
Qt 附加模块(Qt Add-Ons):实现一些特定功能的提供附加价值的模块。
-
增值模块(Value-AddModules):单独发布的提供额外价值的模块或工具。
-
技术预览模块(Technology Preview Modules):一些处于开发阶段,但是可以作为技术预览使用的模块。
-
Qt 工具(Qt Tools):帮助应用程序开发的一些工具。
模块 | 描述 |
---|---|
Qt Core | Qt 类库的核心,所有其他模块都依赖于此模块 |
Qt GUI | 设计 GUI 界面的基础类,包括 OpenGL |
Qt Multimedia | 音频、视频、摄像头和广播功能的类 |
Qt Multimedia Widgets | 实现多媒体功能的界面组件类 |
Qt Network | 使网络编程更简单和轻便的类 |
Qt QML | 用于 QML 和 JavaScript语言的类 |
Qt Quick | 用于构建具有定制用户界面的动态应用程序的声明框架 |
Qt Quick Controls | 创建桌面样式用户界面,基于 Qt Quick 的用户界面控件 |
Qt Quick Dialogs | 用于 Qt Quick 的系统对话框类型 |
Qt Quick Layouts | 用于 Qt Quick 2 界面元素的布局项 |
Qt SQL | 使用 SQL 用于数据库操作的类 |
Qt Test | 用于应用程序和库进行单元测试的类 |
Qt Widgets | 用于构建 GUI 界面的 C++ 图形组件类 |
1.5 Qt的下载与安装
下载地址:
Linux Host
https://download.qt.io/archive/qt/5.12/5.12.12/qt-opensource-linux-x64-5.12.12.run
OS X Host
https://download.qt.io/archive/qt/5.12/5.12.12/qt-opensource-mac-x64-5.12.12.dmg
Windows Host
https://download.qt.io/archive/qt/5.12/5.12.12/qt-opensource-windows-x86-5.12.12.exe
安装
默认安装(建议组件全部选中)
-
Qt对不同的平台提供了不同版本的安装包,可根据实际情况自行下载安装,本专题使用5.12.12 版本进行讲解
1.6 Qt的优点
-
优良的跨平台特性
Qt支持下列操作系统:
Microsoft Windows,Linux,Solaris, SunOS, HP-UX, Digital UNIX (OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX等等
。 -
优良的跨平台特性
Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说非常方便。 Qt提供了一种称为signals/slots的安全类型来替代 callback,使得各个元件之间的协同工作变得十分简单。
-
接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
-
一定程度上简化了内存回收机制。
-
开发效率高,能够快速的构建应用程序。
-
有很好的社区氛围,市场份额在缓慢上升。
-
可以进行嵌入式开发。
1.7 成功案例
-
Linux桌面环境KDE
-
WPS Office 办公软件
-
Skype 网络电话
-
Google Earth 谷歌地图
-
VLC多媒体播放器
-
VirtualBox虚拟机软件