【QT】QT的发展历史与介绍
1.1 什么是 Qt?
Qt(发音为 "cute") 是一个跨平台的 C++ 图形用户界面(GUI)应用程序开发框架,由挪威公司 Trolltech(现为 The Qt Company)于 1991 年开发。它不仅支持 GUI 程序的开发,还提供了丰富的类库和工具,能够用于开发非图形界面的应用程序、嵌入式系统、服务器端应用、移动应用等。
Qt 是一个开源且商业可用的软件开发框架,采用 LGPL(GNU Lesser General Public License) 或 商业许可协议 发布,开发者可以根据项目需求选择合适的授权方式。
Qt 的核心特性包括:
- 跨平台支持(Windows、Linux、macOS、Android、iOS 等)
- 强大的图形界面构建能力
- 多线程、网络通信、数据库访问等功能
- 支持多种编程语言(主要是 C++,也支持 Python、QML 等)
1.2 Qt 发展史
Qt 的发展历程可以分为以下几个阶段:
1991年 - 初创阶段
- Qt 最初由 Haavard Nord 和 Eirik Chambe-Eng 在挪威创立的公司 Trolltech 开发。
- 目标是创建一个独立于操作系统和窗口系统的 GUI 工具包。
1996年 - 首次正式发布
- Qt 1.0 正式发布,主要用于 Unix/X11 平台。
- 后来扩展到 Windows 和 Mac OS 平台。
2000年 - 商业与开源并行
- Trolltech 推出开源版本(适用于 Linux),同时保留商业授权模式。
- Qt 成为 KDE 桌面环境的核心技术基础。
2008年 - 被诺基亚收购
- Trolltech 被芬兰手机巨头诺基亚(Nokia)收购。
- Qt 被整合进诺基亚的战略中,成为其 Symbian 和 MeeGo 系统的重要组件。
2011年 - 诺基亚出售 Qt 业务
- 由于战略调整,诺基亚将 Qt 的商业授权和开发团队出售给 Digia 公司。
- Digia 继续维护 Qt,并推动其在多个平台上的发展。
2014年 - Qt 公司成立
- Digia 将 Qt 业务分拆成一家独立公司 —— The Qt Company 。
- Qt 进入更加专业化的发展阶段,持续增强对嵌入式、工业控制、汽车、物联网等领域的支持。
至今(2025年)
- Qt 不断更新迭代,最新稳定版本为 Qt 6.x。
- Qt 支持现代硬件架构和操作系统,广泛应用于企业级开发、游戏引擎、自动化设备等领域。
1.3 Qt 优点
Qt 框架之所以广受欢迎,主要得益于其以下显著优势:
1. 跨平台能力强
- Qt 可以在 Windows、Linux、macOS、Android、iOS、嵌入式系统(如 QNX、VxWorks) 上运行。
- 编写一次,编译部署到多个平台,极大提高开发效率。
2. 强大的 GUI 开发能力
- 提供了丰富的控件库(Widgets)、布局管理器、样式表机制。
- 支持自定义控件、绘图操作、动画效果等高级功能。
3. 完善的标准类库
- 包含容器类(如 QList、QMap)、文件操作、多线程(QThread、QtConcurrent)、网络通信(QTcpSocket、QNetworkAccessManager)、数据库接口(SQLite、MySQL、PostgreSQL)等。
4. 支持信号与槽机制
- Qt 独有的 信号(Signal)与槽(Slot) 通信机制,实现对象间松耦合的交互。
- 简化了事件驱动编程模型,提高了代码的可读性和可维护性。
5. 支持 QML 与 JavaScript
- Qt Quick 使用 QML(一种声明式语言)和 JavaScript 来构建动态 UI。
- 特别适合开发移动端和触控界面。
6. 社区活跃,文档丰富
- 拥有庞大的开发者社区和完善的官方文档。
- 官方提供详细的 API 文档、示例代码、教程视频等资源。
7. 开源与商业授权共存
- 开发者可以选择 LGPL 开源授权进行免费使用,也可以购买商业授权获取技术支持和服务。
8. 高性能与稳定性
- Qt 底层基于 C++ 实现,执行效率高。
- 被广泛用于工业控制系统、医疗设备、航空航天等对稳定性要求极高的领域。
1.4 Qt 应用场景
Qt 的应用场景非常广泛,几乎覆盖了所有需要图形界面或高性能后端处理的领域。主要包括:
1. 桌面应用程序开发
- 如办公软件、图像处理工具、音视频播放器等。
- 示例:Autodesk Maya、Skype、VirtualBox、WPS Office 等都曾使用或集成 Qt 技术。
2. 嵌入式系统开发
- Qt 支持多种嵌入式平台(如 ARM 架构),可用于开发智能仪表、工业控制面板、车载导航系统等。
- Qt for MCUs(微控制器单元)方案专为低功耗嵌入式设备设计。
3. 移动应用开发
- Qt 支持 Android 和 iOS 平台的原生应用开发。
- 可以使用 Qt Widgets 或 Qt Quick/QML 创建跨平台移动应用。
4. 游戏开发
- 虽然不是主流游戏引擎,但 Qt 提供了基本的图形渲染能力和多媒体支持,适合轻量级游戏开发。
- 可作为辅助工具用于游戏编辑器、调试器等。
5. 数据可视化与科学计算
- Qt 提供了图表库(如 Qt Charts、QCustomPlot)和 OpenGL 支持,适合开发数据可视化工具。
- 常用于科研仪器、金融分析、地理信息系统等领域。
6. 工业自动化与控制系统
- Qt 被广泛应用于 PLC 控制界面、HMI(人机界面)、SCADA 系统等工业自动化领域。
- 具备良好的实时性和稳定性。
7. 航空航天与国防
- Qt 被用于飞行模拟器、雷达显示系统、卫星监控系统等关键任务系统中。
- Qt 的跨平台和稳定性使其非常适合此类高可靠性场景。
8. 教育与科研
- 许多高校和研究机构使用 Qt 进行教学实验、算法演示、原型开发等。
- 易于上手,适合学生入门图形界面编程。
1.5 Qt 开发工具
Qt 提供了一系列强大的开发工具,帮助开发者高效地进行项目开发、调试和部署。
1. Qt Creator
- 官方推荐的 IDE ,集成了代码编辑器、调试器、UI 设计器、项目管理器等功能。
- 支持多种编译器(如 MinGW、MSVC、GCC、Clang)。
- 提供智能提示、语法高亮、代码重构等现代化开发功能。
- 支持 QML 项目的可视化编辑和预览。
2. Qt Designer
- 可视化的 UI 设计工具,用于拖拽式创建图形界面。
- 支持 Widget 和 QML 两种界面类型。
- 生成
.ui
文件,可在代码中加载使用。
3. Qt Assistant
- 内置的帮助文档浏览器,包含完整的 Qt API 文档。
- 支持关键词搜索、目录浏览、示例查看等功能。
4. Qt Linguist
- 国际化支持工具,用于翻译应用程序中的文本内容。
- 支持多语言切换,方便开发多语言版本的应用程序。
5. qmake
- Qt 自带的构建工具,通过
.pro
项目配置文件生成 Makefile。 - 支持跨平台编译,简化构建流程。
- 现代项目中也可使用 CMake 替代。
6. CMake
- 虽然不是 Qt 官方工具,但被广泛用于大型 Qt 项目。
- 提供更灵活的构建配置方式,支持跨平台构建和第三方库集成。
7. Qt Test Framework
- Qt 提供的单元测试框架,支持自动编写和运行测试用例。
- 适用于 TDD(测试驱动开发)和 CI/CD 流程。
8. Qt Quick Controls 2 & QML Tools
- 用于开发基于 QML 的现代 UI。
- 提供丰富的 UI 组件和动画支持。
- Qt Creator 中集成 QML 编辑器和实时预览功能。
9. Qt Installer Framework
- 用于创建跨平台安装程序。
- 支持 Windows、Linux、macOS 平台的应用打包和安装。
10. Qt for Python(PySide)
- 如果使用 Python 开发 Qt 应用,可以使用 PySide 或 PyQt。
- PySide 是 Qt 官方支持的 Python 绑定库,基于 LGPL 协议。
1.6.Qt的安装
下载网址:Index of /archive/qtcreator
然后无脑next就行 最后安装完的结果如下
1.7.认识SDK的重要性
我们下载完成后就可以看到以下几个部分
- 第一个 Assistant 是一个 QT 的离线文档,用来查找 QT 的一些 API 的使用方法
-
第二个 designer 是一个图形化设计工具,可以通过拖拽的方式进行速成界面
-
第三个 linguist 是 QT 语言家,作用就是对国际化进行支持。允许你进行单独的创建一个语言文件配置,把界面上出现到的各种文字都配置到文件中,并且在文件中提前做好翻译工作,这样就可以做到一键切换语言。
-
第四个就是一个终端界面,可以通过执行命令的方式进行编译代码
-
第五个就是 QT 的一个集成开发工具,也是我们主要使用的工具.
1.8.认识QtCreator的重要性
1.菜单栏:菜单栏一共有8个菜单选项,包含了常用的功能菜单
2.模式选择:
3.构建套件选择器:构建套件选择器包含了 目标选择器(Targetselector)、运行按钮(Run)、调试按钮(Debug) 和 构建按钮(Building) 四个图标
4.窗口模式下的工作模式
5.定位器 :使用定位器来快速定位项目、文件、类、方法、帮助文档以及文件系统。可以使用过滤器来更加准确地定位要查找的结果。
6.输出窗格 :输出窗格包含了问题、搜索结果(Search Results)、应用程序输出、编译输出、Debugger Console、概要信息、测试结果(Test Results)7个选项,它们分别对应一个输出窗口,响应的快捷键依次是 Alt+数字1~7
7.会话记录 :可以对会话进行管理,包括Clone。如果没打开工程,则显示的是最后一次打开的(会话)工程,否则,显示当前的会话(工程)
8.新建项目
9.打开已有项目