什么是 Qt(了解请跳过)

Qt 基本介绍

Qt 是一个跨平台 C++ 图形用户界面应用程序框架。

有关 Qt 的详细介绍,可以参考这篇文章:

Qt 是什么?Qt 简介(非常全面) - 李清龙的文章 - 知乎

简而言之,Qt 是一个强大的第三方库,而且是一个 GUI 库,就是专门用来做图形界面的。

Qt 强大的主要原因有以下几点:

  • 开源。即它的源代码是公开的,从官网,或者 Github 上,你都可以下载到它的最新版本的源代码。
  • 跨平台。Qt 实现了一套跨平台的 API 抽象层,使得 Qt 开发的应用程序可以轻松地在不同平台上编译运行,大大简化了跨平台开发的复杂性。
  • 封装性好,使用简单。Qt 封装了底层的界面开发、多线程、网络通讯等复杂功能,提供了简单易用的 API。这大大降低了 GUI 编程的难度。
  • 成熟稳定。Qt 发展超过 20 年,经过大量商业项目的验证,已呈现出很高的成熟稳定性。这使得 Qt 可靠性高,适合大型项目。
  • 模块化框架,组件丰富。Qt 以模块化方式提供了丰富的组件,涵盖了 GUI、数据库、网络、多媒体等方面。这为开发者提供了强大便捷的工具。
  • 良好文档和社区支持。Qt 提供详实的 API 文档和开发指南。同时 Qt 有庞大的社区,开发者可以方便地寻求帮助。
  • 商业友好的许可模式。Qt 提供了多种商业友好的许可模式,允许在商业产品中使用。这使得 Qt 很适合商业项目开发。

Qt 开源版与商业版的区别

Qt 有商业版开源版两个版本:

  1. Qt 商业版(Qt Commercial):
  • 由 Qt Company 开发和维护
  • 需要付费获取商业授权才能在商业产品中使用
  • 包含额外的商业组件、技术支持等服务
  • 更多的平台支持,如嵌入式系统
  • 提供长期维护版本(LTS)
  1. Qt 开源版(Qt Open Source):
  • 遵循 LGPL 协议,可以免费使用
  • 社区维护和开发
  • 功能比较完整,但没有商业版额外的商业组件
  • 更新迭代速度比较快
  • 通常用于开源项目或教学等非商业用途

主要区别在于商业版提供更强大的商业支持服务,需要支付费用,而开源版完全免费但服务有限。两者的核心库基本相同,可以通过插件扩展差异化功能。

总之,个人开发者选择开源版就可以了。

Qt 和 Qt Creator 的区别

Qt

Qt 是一个第三方库,我们使用库并不是直接使用它的源代码,而是使用经过编译后的库文件,我们常说下载安装某某库,其实下载安装的,就是一堆库文件而已。

当然我们也可以下载源代码,自己编译,自己配置,只不过大部分情况下没有必要。

Qt Creator

Qt Creator 是 Qt 官方的 IDE,它最直接的作用就是,提高开发 Qt 应用程序的效率。我们使用 Qt 官网的安装包可以一键式得为我们搭建好开发环境,即 Qt 库、构建工具链、相关组件以及一些能够提高我们效率的开发工具。

当然它不仅仅能够开发 Qt 程序,但是我们想要开发 Qt 应用程序,最好还是借助它来提高我们的效率。

【第一步】 注册一个 Qt 账号(有就跳过)

安装过程中需要登录 Qt 账户,如果想用最新版必须注册。

(5.14.2 及以前的版本有离线安装包,可以不用登录)

【1】打开网址:https://login.qt.io/register

image-20240528094400423

注册邮箱建议选择长期使用的邮箱,QQ 邮箱、Outlook 邮箱等都可以。

密码也建议不要使用浏览器生成的强密码,因为一会登录要用。

【2】填好信息后勾选 I accept the service terms.(必选)然后点【Create Qt Account】

image-20240528095246651

image-20240528095310647

【3】这时候进入注册的邮箱中,会收到一封用于验证的邮件,会有一个用于验证的链接,点击它

image-20240528095727016

【4】然后就到了填写信息的页面了

自己看着填,最后的
Send me news and information on Qt products and services. Check out our privacy policy.
选了会时不时给你的邮箱发邮件,自己看吧

image-20240528095921578

【5】手机号可以不用填,然后点【Confirm】

image-20240528100359164

【6】之后会跳转到登录页面,并且会显示 Success! Please login to continue,说明注册成功

不用登录,记住这个邮箱和密码就行

image-20240528100705154

【第二步】下载安装包

【1】打开 Qt 开发工具官网(注意是开发工具官网不是官网,也可以理解为 Qt Creator 官网)

image-20240528101030338

【2】然后点击【Download Qt】

image-20240528101113124

image-20240528101138720

【3】然后点击【Download open source】

image-20240528101220463

image-20240528101246035

【4】到这个页面后,一路往下滑,找到【Download the Qt Online Installer】并点击

image-20240528101915310

【5】然后选择版本,点击【Qt Online Installer for ……】就可以开始下载了

image-20240528102059965

当然,通过这个链接 https://www.qt.io/download-qt-installer-oss 也可以直接抵达第 5 步的页面,但我更建议自己找,步骤也不是很繁琐

  • 其一:我不能保证这个链接的有效性,因为官网是会不断更新变化的
  • 其二:我想让你通过这个步骤对自己“到底下载了个啥东西”有个初步的了解,并且自己会去找在哪下载,这样万一网站结构变了,你还是知道在哪下载

【第三步】安装

【1】打开安装包

image-20240528102459738

  • 安装包文件名说明:4.8.0 不是 Qt 库的版本,也不是 Qt Creator 还是什么的版本,仅仅就是安装包的版本而已(据我推测应该是酱紫)不用管。

【2】输入刚才注册的邮箱和密码,然后下一步

image-20240528102719865

【3】勾选同意协议,然后勾我是个人用户,然后下一步

image-20240528102937683

【4】下一步,然后会加载点东西,第一次安装会久一点

image-20240528103006796

image-20240528103043430

【5】这个界面的意思是要不要发送数据给 Qt 官方以帮助他们改进

(好好好,这么玩是吧,我这都开源版了,还有就是唯独这个页面是英文,我寻思官方是不是故意的),反正我肯定拒绝,你们自己看,选好后下一步就好

image-20240528103341816

image-20240528104142972

【6】这一步非常关键,首先是安装目录的选择

image-20240528104249576

  • 安装路径中千万千万不要有中文!安装路径中千万千万不要有中文!安装路径中千万千万不要有中文!(信我就对了,别问为什么)

  • 其次,Qt 安装在哪个盘不要紧,我一般是安装在专门放软件的盘;

  • 建议安装路径:【盘符】:\Qt\【Qt 版本号】,因为你也不确定你以后会不会安装别的版本又不想删除当前版本,所以最好是把不同版本装在不同文件夹里;

  • 这个在线安装包默认安装的 Qt 库的版本是最新版,而在我安装的时候(2024-5-28),Qt 库的最新版是 6.7.1,所以我的路径为:【C:\Qt\Qt6.7.1】。

image-20240528104709648

然后下面的选项,可能每个版本都不一样,但选择的本质没变

  • Custom installation】(自定义安装):所有的工具,套件,模块等都由你自己选择(在后面)。

  • Qt Design Studio】(Qt 设计工作室):这是 Qt Creator 默认自带的一个工具,它支持可视化编程,就是你可以像 P 图一样,去设计图形界面,只安装这个有啥意思?所以一般不选这个。

  • Qt 6.7 for desktop development】(用于桌面开发的 Qt 6.7):这一项的重点在于下面的解释:
    MinGW toolchain and Qt libraries for MinGWMinGW 工具链和 MinGW 编译的 Qt 库

    • MinGW,是 Windows 版本的 GCC,说白了就是编译源代码的工具,而 MinGW 工具链,其实就是构建套件,什么是构建套件,就是从源代码到可执行程序,这整个过程中所使用的工具组合。对于 Qt Creator,构建套件是必须的,没有构建套件就不能编译源代码。

    • MinGW 编译的 Qt 库,就是使用 MinGW 这套编译工具编译 Qt 库的源代码生成的库文件。

    选择这一项的话,会自动安装好一些默认的工具,比如 Qt Creator、Qt Design Studio 等,都是最新版,并且会安装好最新的 MinGW 构建套件,和 MinGW 编译的 Qt 库。
    对于桌面应用开发来说,选这一项就够了。

  • Qt 6.7 for mobile development】(用于移动开发的 Qt 6.7):顾名思义,专门开发手机软件的,我不是很了解,没有开发手机软件需求的不用管。

    那么这四个选项第二个和第四个一般不选,主要是选第一个或者第三个,我们先选第一个到后面看看都有哪些工具、组件等。

另外,最下面【Associate common file types with Qt Creator】,是说文件关联,就是一些常见的源代码文件,会默认使用 Qt Creator 打开,这个根据自己需求选择

image-20240528105309383

选择组件,对于不熟悉的人来说,简直坑爹,当时差点我就从安装到放弃了。

首先,中间的是组件列表,右边有三个选项可以用来筛选组件,我们先筛选,再具体选择。

image-20240528105515060

  • Archive(归档),提供了一些往期版本的组件供你选择,各个组件的各种版本都可以选择,比如什么预构建组件、3D 组件等,还有各种版本的源码、附加库、构建套件可以选择,反正我现在是用不到,而且人家默认也没勾这一项。
  • Lasted supported releases长期支持的版本),顾名思义它里面的组件都是长期支持的,长期支持的版本一般都比较稳定,所以人家默认也勾了这一项。
  • Preview(预览),很简单,玩玩人家刚弄出来的东西,想玩的去玩,不想玩的就乖乖搞开发就行了。

这三项中 ArchivePreview 可以不用勾,但是 Lasted supported releases 是必须要勾的。

image-20240528110723406

现在详细介绍一下组件列表

  • Qt Design Studio(Qt 设计工作室),之前提到过,图形化编程工具,通常会用来快速构建出图形界面,一般都会选。

    提供了两个版本供选择,根据名字就可以看出,一个是最新版,一个是 LTS,根据自己需求选择即可。

  • Qt,这一部分是安装的核心部分,其中又分为两部分

    • Qt 6.x.x,这一部分是关于 Qt 库的组件。

      如果要进行 Qt 应用程序开发(或者说如果要使用 Qt 库),这一部分是必选的。

      一般只针对一个版本进行选择

    • Developer and Designer Tools(开发和设计工具),这一部分是关于 Qt Creator 的组件。

      这一部分的组件是针对 IDE 而言的,包括 Qt Creator 在内。

      这一部分通常也是必选的。

所以说,Qt 的在线安装包,能够安装两种东西,Qt 和 Qt Creator,你可以选择只安装其中之一,但通常都会安装。

现在针对 Qt 6.x.x 这一部分做详细介绍。我们以最新版为例。

image-20240528112517560

  1. WebAssembly (multi-threaded/ single-threaded):

    • 这两个组件允许 Qt 应用程序在 WebAssembly 环境中运行,支持多线程或单线程模式。
  2. MSVC 2019 ARM64 (TP):

    • 这是为 Microsoft Visual C++ 2019 编译器ARM64 架构提供的 Qt 工具包。
  3. LLVM-MinGw 17.0.6 64-bit:

    • 这是基于LLVMMinGW 编译器的 64 位版本,用于在 Windows 上编译 Qt 应用程序。
  4. MSVC 2019 64-bit:

    • 这是为 Microsoft Visual C++ 2019 编译器的 64 位版本提供的 Qt 工具包。
  5. MinGW 11.2.0 64-bit:

    • 这是为 MinGW 编译器的 64 位版本提供的 Qt 工具包,用于在 Windows 上编译 Qt 应用程序。
  6. Android:

    • 这是为 Android 平台提供的 Qt 工具包,允许开发者为 Android 设备创建应用程序。
  7. Sources:

    • 包含 Qt 库的源代码,供开发者参考或修改。
  8. Qt Quick 3D:

    • 用于创建 3D 用户界面元素和场景的模块。
  9. Qt 5 Compatibility Module:

    • 提供与 Qt 5 版本兼容的接口,帮助从 Qt 5 迁移到 Qt 6。
  10. Qt shader Tools:

    • 用于创建和编译着色器的工具。
  11. Additional Libraries:

    • 包括一些额外的库,如 Active Qt、Qt 3D、Qt Charts 等。
    1. Active Qt:

      • 允许 Qt 应用程序与 COM 组件交互。
    2. Qt 3D:

      • 用于创建 3D 场景和动画的模块。
    3. Qt Charts:

      • 提供图表绘制功能的模块。
    4. Qt Connectivity:

      • 用于设备间通信的模块。
    5. Qt Data Visualization:

      • 提供数据可视化功能的模块。
    6. Qt Graphs (TP):

      • 用于图形处理的实验性模块。
    7. Qt HTTP Server (TP):

      • 实现 HTTP 服务器功能的实验性模块。
    8. Qt lmage Formats:

      • 用于图像格式处理的模块。
    9. Qt Insight Tracker (TP):

      • 用于追踪和分析用户行为的实验性模块。
    10. Qt Language Server:

      • 用于语言服务的模块,如代码补全、语法检查等。
    11. Qt Location (TP):

      • 提供地理位置服务的模块。
    12. Qt Lottie Animation:

      • 用于播放 Lottie 动画的模块。
    13. Qt Multimedia:

      • 用于处理音频、视频和相机的模块。
    14. Qt Network Authorization:

      • 用于网络认证的模块。
    15. Qt PDF:

      • 用于处理 PDF 文件的模块。
    16. Qt Positioning:

      • 提供位置服务的模块。
    17. Qt Protobuf and Qt GRPC (TP):

      • 支持 Google Protocol Buffers 和 gRPC 通信协议的实验性模块。
    18. Qt Quick 3D physics:

      • 用于 3D 物理效果的模块。
    19. Qt Quick Effect Maker:

      • 用于创建 Qt Quick 效果的模块。
    20. Qt Remote Objects:

      • 用于远程对象通信的模块。
    21. Qt Sensors:

      • 用于访问传感器数据的模块。
    22. Qt Serial Bus:

      • 用于串行总线通信的模块。
    23. Qt Serial Port:

      • 用于串行端口通信的模块。
    24. Qt Speech:

      • 用于语音识别和合成的模块。
    25. Qt State Machines:

      • 用于创建状态机的模块。
    26. Qt Virtual Keyboard:

      • 用于创建虚拟键盘的模块。
    27. Qt Webchannel:

      • 用于 Web 通信的模块。
    28. Qt WebEngine:

      • 用于集成 Chromium 浏览器引擎的模块。
    29. Qt Websockets:

      • 用于 WebSocket 通信的模块。
    30. Qt Webview:

      • 用于集成 Web 内容的模块。
  12. Qt Debug Information Files:

    • 包含调试信息的文件,用于调试 Qt 应用程序。
  13. Qt Quick Timeline:

    • 用于动画和时间轴控制的模块。

注意:有些组件后面带有“(TP)”,这表示它们是“技术预览”(Technology Preview) 版本,可能还不稳定或正在开发中。

接下来详细介绍 Developer and Designer Tools

image-20240528133707589

  1. LLVM-MinGw 17.0.6 64-bit:
    • LLVM-MinGw 是一个基于 LLVM 编译器基础设施的 GNU 编译器集合,这个版本是 64 位的,用于在 Windows 上编译 Qt 应用程序。
  2. Qt Creator 13.0.1:
    • Qt Creator 是 Qt 的官方集成开发环境(IDE),用于开发 Qt 应用程序。
  3. Qt Creator 13.0.1 CDB Debugger support:
    • 这是 Qt Creator 的组件,提供了对 CDB(Windows 的调试器)的支持,用于调试 Windows 平台上的应用程序。
  4. Debugging Tools for Windows:
    • 这是微软提供的工具集,包括调试器和其他调试相关的工具,用于调试 Windows 应用程序。
  5. Qt Creator 13.0.1 Debug Symbols:
    • 这些是调试符号,用于在 Qt Creator 中进行源代码级的调试。
  6. Qt Creator 13.0.1 Plugin Development:
    • 这个组件提供了开发 Qt Creator 插件所需的工具和文档,允许开发者扩展 Qt Creator 的功能。
  7. MinGW 13.1.0 64-bit:
    • MinGW(Minimalist GNU for Windows)是一个提供 GNU 工具集的 Windows 移植版本,这个版本是 64 位的。
  8. MinGW 11.2.0 64-bit:
    • 这是 MinGW 的一个较旧版本,同样是 64 位的。
  9. MinGW 8.1.0 32-bit / 64-bit:
    • 这是 MinGW 的 32 位和 64 位版本,用于在 Windows 上编译应用程序。
  10. MinGW 7.3.0 32-bit / 64-bit:
    • 这是更早的 MinGW 版本,提供 32 位和 64 位编译支持。
  11. MinGw 5.3.0 32-bit:
    • 这可能是一个未选中的 MinGW 5.3.0 的 32 位版本。
  12. MinGW 4.9.2 32-bit:
    • 这可能是一个特别标记的 MinGW 4.9.2 的 32 位版本。
  13. MinGW 4.9.1 32-bit / MinGW 4.8.2 32-bit / MinGW 4.8 32-bit / MinGW 4.7 32-bit:
    • 这些都是 MinGW 的早期 32 位版本,用于编译 Windows 应用程序。
  14. Qt Installer Framework 4.8:
    • 这是一个用于创建跨平台安装程序的框架。
  15. CMake 3.27.7:
    • CMake 是一个跨平台的自动化构建系统,它使用配置文件(CMakeLists.txt)来生成标准的构建文件。
  16. Ninja 1.10.2:
    • Ninja 是一个小型的构建系统,专注于速度,通常与 CMake 一起使用。
  17. OpenSSL 3.0.12 Toolkit:
    • OpenSSL 是一个强大的安全库,提供加密和 SSL/TLS 功能。
    1. OpenSSL 64-bit binaries (MsVc 2019):
      • 这是为 Microsoft Visual C++ 2019 编译的 64 位 OpenSSL 二进制文件。
    2. OpenSSL source code:
      • 这是 OpenSSL 的源代码,供开发者研究或修改。

如果没有特殊需求的,我推荐退回到上一步选择【Qt 6.7 for desktop development】,基本够用了,该装的都给你装了,况且后面还是可以增删组件的。

【7】这里我选择【Qt 6.7 for desktop development】,再次提醒路径要设置好(不要有中文!),然后点击下一步

image-20240528134643728

【8】然后同意,下一步

image-20240528134833389

【9】开始菜单快捷方式,注意,这里的意思,在开始菜单中创建一个文件夹,里面是一堆快捷方式,还是建议按照版本号命名,命名好后下一步

image-20240528135000324

【10】安装

image-20240528135038255

然后就是等待,一般不会有网速慢的情况,我用在线安装器安装过很多次,没有出现网速慢的情况,如果有,可以尝试科学的解决方法(dddd)

最后,授人以鱼不如授人以渔,这个下载安装的思路是不仅仅局限一个版本,一个软件的。