当前位置: 首页 > news >正文

【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.打开已有项目

相关文章:

  • 机器学习配置环境
  • Python实现对WPS协作群进行群消息自动推送
  • 在单片机中如何实现一个shell控制台
  • 机器学习框架(1)
  • crawl4ai crawler.arun( 超时问题
  • 安卓中静态和动态添加子 View 到容器
  • Flutter基础(FFI)
  • Docker安装MinIO
  • 碰一碰发视频/碰一碰发抖音技术--源码开发部署实现方案
  • NVIDIA 开源高性能语音识别模型:Parakeet TDT 0.6B V2 登顶 OpenASR 榜单
  • DeepSeek 桌面端 快捷键唤起小窗口 极致轻量化
  • JavaScript正则表达式之正向先行断言(Positive Lookahead)深度解析
  • 黑马python(十七)
  • 电子电气架构 --- 车载芯片SOC简介
  • MyComic动漫+漫画+小说三合一 v1.9.2 纯净版
  • 北大肖臻《区块链技术与应用》学习笔记
  • MyBatis深度面试指南之三
  • 数据结构1 ——数据结构的基本概念+一点点算法
  • Java Optional 详解:优雅处理空指针异常
  • 【Docker基础】Docker容器管理:docker stats及其参数详解