文章目录
- 一、Qt 简介
- 二、安装开源版本
- 2.1 Qt 官网 与 版本选择
- 2.2 Qt 安装程序
- 三、使用示例
- 3.1 Qt Creator
- 3.11 示例程序
- 3.12 新建C++项目
- 3.13 新建Python项目
- 3.2 Visual Studio
- 附录
- 附录 1:Additional Libraries 说明
- 附录2 :老版本安装
- 附录3:更改Qt组件:Qt Maintenance Tool
一、Qt 简介
Qt是一个跨平台的应用程序开发框架,广泛用于开发图形用户界面(GUI)应用程序、嵌入式系统以及多媒体应用
Qt可以在多个操作系统上运行,包括Windows、Linux、macOS、Android和iOS。这使得开发者能够用相同的代码基来构建和维护多个平台的应用程序。
Qt提供了大量的类和模块,包括但不限于:
- QtCore:基础功能,如数据结构、文件处理和多线程。
- QtGui:图形界面相关,处理窗口、图形效果、字体和图像等。
- QtWidgets:传统的桌面应用程序组件,提供了按钮、窗口、对话框等控件。
- QtQuick/QML:用于快速构建现代触摸界面的声明式语言和组件。
- QtMultimedia:处理音频和视频的播放和录制。
Qt采用信号与槽机制来处理事件和通信。开发者可以通过定义信号和槽来实现不同对象之间的解耦通信,这使得编写和维护代码变得更加简单。
Qt内置了国际化和本地化的支持,开发者可以方便地将应用程序翻译成多种语言。
Qt提供了Qt Creator,一个强大的集成开发环境(IDE),具备代码编辑、调试、版本控制等功能,帮助开发者提高开发效率。
Qt有一个活跃的开发社区,提供了丰富的文档、示例代码和论坛支持。同时,Qt公司也提供商业支持。
Qt在嵌入式开发中也有广泛应用,支持各种硬件和操作系统,可以用于开发图形界面的嵌入式设备。
Qt提供了多种许可证,包括开源的LGPL和商业许可证,开发者可以根据自己的需求选择合适的许可证。
Qt适用于各种类型的应用开发,如:
- 桌面应用程序(例如,文本编辑器、图像处理软件)。
- 移动应用程序(例如,社交媒体应用)。
- 嵌入式系统(例如,智能家居设备的界面)。
- 游戏开发。
Qt以其强大的功能和灵活性,成为了现代应用程序开发的重要工具。如果你对某个具体方面有更多的兴趣,欢迎进一步提问!
二、安装开源版本
2.1 Qt 官网 与 版本选择
🟢 Qt官网:qt.io (点击地球图标可以切换语言,部分页面不支持中文)
先注册一个Qt的账号,不赘述。
如上图所示,主要有4类软件,即设计、开发、测试、分析(自己点进去看有详细介绍)。
Qt Design Studio
主要用于设计用户界面,支持拖放操作和动态预览,适合UI/UX设计师。
而Qt Creator
是一个集成开发环境(IDE),专注于编写、调试和构建代码,适合程序员。两者可以结合使用,提升开发效率。
🟢 这里下载的是Qt Creator
。
Qt Creator
:支持人工智能的跨平台 IDE
Qt Creator是跨平台的集成开发环境(IDE),专为最大限度地提高开发者的工作效率而定制。
Qt Creator支持在编程过程中使用GitHub Copilot等编码助手。它帮助开发者为桌面、移动端和嵌入式平台创建软件。
🟢 Qt Creator本身是免费的开源软件,但Qt框架的商业许可证是需要付费的。
点击 网站的Price.Buy.
就可以看到不同版本的报价:
- Corporation(公司):各种软件价格为几千美元一年,部分软件需要咨询价格;
- Small Business(小型企业):最高999美元一年;
- Education & Community(教育/社区版本):这个版本大家最清楚了。免费,但是高级功能、技术支持、许可证条款与付费版本不同。
本文下载的是开源版本(与Education & Community版本功能相同,其实就是是一个版本)。开源版本主要是许可证、技术支持、部分高级功能与付费版本有区别。
Qt开源版本的协议说明:
When selecting an open source license for your project, you contribute to free and open source software development by using Qt under any of the following licenses: LGPL version 3, GPL version 2 and GPL version 3.
GPL和LGPL简要说明:
- GPL2 和 GPL3 强调用户自由和
源代码公开
的要求,GPL3 提供了更多的现代保护措施。- LGPL 提供了更大的灵活性,允许在不公开应用程序源代码的情况下使用和分发开源库。
🔹如果你使用了开源版本,发布产品时就要遵循相应的开源协议(还有按照相应的要求添加版权声明,qt安装程序的许可协议
部分写了完整的)。如果你使用QT获利了几千、几万、几十万,而没有遵循开源协议,这可能没有什么问题。但这已经违背了开源精神和开源协议,精神暂且不谈,违反协议是要负法律责任的,就看你值不值得买被起诉了。
🟠开源版本页面:https://www.qt.io/download-open-source
在页面正文最下方,就可以看到:Download the Qt Online Installer
,点击下载即可。
这是一个 软件/组件 安装器,
和Visual Studio Installer
是类似的。你可以使用这个软件,安装你需要的组件。而且可以在安装完成之后,再次添加或者移除你需要或者不需要的组件。
2.2 Qt 安装程序
打开刚刚下载的 Qt Online Installer
,首先要登录QT账号。
安装文件夹的名称,就按照你写代码给变量命名的规范来,不要用中文这些,以免日后某个地方出现问题。
主要步骤就是选择组件
这一步,其他步骤我无需赘述。
在 Qt 安装程序的组件选择中,主要有3个部分:
🟢(1)Qt Design Studio
:一个用于设计和构建用户界面的工具,支持快速原型开发。适合需要 UI 设计和交互设计的项目。这个是设计高级界面的,比如动画。基本界面设计可以不按照这个。安装Qt creator的时候会按照Qt Designer,它是Qt Design Studio的reduce版本。
Qt Design Studio
的LTS
后缀就是Long Time Support 版本的意思,长期支持版本。没有后缀的就是最新发布版本,但可能有些bug之类的。snapshot就是开方中的最新版本快照。一般安装的话,选择LTS版本即可。
🟢(2) Extensions
提供额外的功能模块和工具,例如用于特定领域的支持、插件等。可以扩展 Qt 的功能。
Extensions
有3个扩展:QT Insight Tracker、QT PDF、QT WebEngine:
Qt Insight Tracker
- 功能:用于收集和分析用户行为数据,帮助开发者了解用户如何与应用程序互动。适合需要数据分析和用户体验优化的项目。
Qt PDF
- 功能:提供 PDF 文档的处理和显示功能,支持在应用程序中生成、渲染和操作 PDF 文件。适合需要处理文档的应用。
Qt WebEngine
- 功能:允许开发者在 Qt 应用中嵌入网页内容,基于 Chromium 引擎,支持现代网页技术。适合需要集成 Web 应用或展示在线内容的项目。
🟠(3)Qt
:核心组件,包含 Qt 的主要模块。
QT
下面有2类选项:
- 第一类是QT的几个版本,
rc
后缀是最新测试版,无后缀的是稳定版本; - 第二类是
Developer and Designer Tools
,即开发和设计工具。
🔹第一部分:以QT 6.7.3
为例,下面有这些选项:
选项名称 | 功能描述 |
---|---|
WebAssembly (multi-threaded) | 支持多线程的 WebAssembly 版本,适合需要并发处理的应用。 |
WebAssembly (single-threaded) | 单线程的 WebAssembly 版本,适合较简单的 Web 应用。 |
MSVC 2019 ARM64 (TP) | 针对 ARM64 架构的 Microsoft Visual C++ 2019 版本,适合 ARM 设备。 |
LLVM-MinGW 17.0.6 64-bit | 使用 LLVM 工具链的 MinGW 编译器,适合特定编译选项或性能优化。 |
MSVC 2019 64-bit | 针对 64 位 Windows 的 Microsoft Visual C++ 2019 版本。 |
MinGW 11.2.0 64-bit | 针对 64 位 Windows 的 MinGW 编译器,适合跨平台应用开发。 |
Android | 提供对 Android 平台的支持,适合开发 Android 应用。 |
Sources | 包含 Qt 源代码,适合自定义 Qt 或调试的开发者。 |
Qt Quick 3D | 用于开发 3D 图形应用,适合需要三维渲染的项目。 |
Qt 5 Compatibility Module | 提供与 Qt 5 的兼容性支持,适合迁移到 Qt 6 的项目。 |
Qt Shader Tools | 用于开发和调试着色器,适合涉及图形编程的项目。 |
Additional Libraries | 提供额外的库,具体内容视项目需求而定。 |
Qt Debug Information Files | 调试信息文件,适合进行深度调试的开发者。 |
Qt Quick Timeline | 用于时间轴动画的工具,适合需要复杂动画的应用。 |
🔹第二部分:Developer and Designer Tools
,包含下面的组件:
组件名称 | 功能描述 |
---|---|
LLVM-MinGW 17.0.6 64-bit | 使用 LLVM 的 MinGW 编译器,适合需要特定编译选项的开发。 |
Qt Creator 14.0.1 | Qt 的集成开发环境,支持代码编辑、调试和项目管理。 |
Qt Creator 14.0.1 CDB Debugger Support | 提供与 Microsoft CDB 调试器的集成支持,适合 Windows 开发。 |
Debugging Tools for Windows | Windows 的调试工具,适合调试 Windows 应用程序。 |
Qt Creator 14.0.1 Debug Symbols | 调试符号支持,帮助在调试时提供更多信息。 |
Qt Creator 14.0.1 Plugin Development | 支持开发 Qt Creator 插件的工具,适合扩展 IDE 功能。 |
MinGW 13.1.0 64-bit | 64 位的 MinGW 编译器,适合在 Windows 上开发。 |
MinGW其他版本 | 不展开赘述,版本不同,新旧不同 |
Qt Installer Framework 4.8 | 用于创建 Qt 应用的安装程序,支持多平台打包和分发。 |
CMake 3.29.3 | 用于管理项目构建的工具,支持跨平台开发和构建系统集成。 |
Ninja 1.12.0 | 现代化的构建系统,适用于高效构建和编译过程。 |
OpenSSL 3.0.15 Toolkit | 提供加密库和安全协议的支持,适合需要安全通信的应用。 |
安装Qt Creator的时候,会一起安装Qt Designer
,这个是用来设计简单的界面的。
前面我还安装了 Qt Design Studio
,它们都是用于设计Qt用户界面的工具:
Qt Designer
- 功能:主要用于创建和编辑简单的用户界面,支持基本的控件和布局设计。
- 目标用户:面向希望快速设计桌面应用程序界面的开发者。
- 使用方式:界面设计完成后,通常导出为
.ui
文件,可以在PyQt或C++ Qt项目中使用。- 特点:简单易用,适合初学者和小型项目。
Qt Design Studio
- 功能:提供更高级的功能,支持动画、动态效果和现代化设计,适合创建复杂和动态的用户界面。
- 目标用户:面向需要创建高保真原型和复杂界面的设计师与开发者。
- 使用方式:不仅可以设计界面,还能进行UI/UX原型设计,支持导出为QML代码。
- 特点:集成了设计和开发流程,更适合现代应用的开发,支持团队协作。
总结
- Qt Designer适合简单桌面应用的快速设计。
- Qt Design Studio则提供了更多功能,适合复杂和动态界面的开发。如果你需要更多的设计能力和交互性,可以考虑使用Qt Design Studio。
🟢🟢 如何选择安装的组件?
根据需要安装即可,初学者推荐至少安装上面表格中红色的部分。
Additional Libraries
可以看附录一,根据需要安装。
安装老版本可以看附录二。
QT某个版本下面的组件,根据需要安装,最好不要安装那些明确不需要
的内容,比如Android,比如与你CPU架构不同的组件,如果全选的话,占用空间至少超过50GB。
不要担心装多了或者没安装需要的,完成之后还可以安装新的组件或移除组件的。
🟢 本文选择的是:Qt Design Studio 4.1.1 LTS、暂不安装Extemsions、剩余的则是前面表格的红色内容。
有时候下载某个组件的时候,会弹窗连接关闭,重试即可。或者开个网络代理。
总之,你如果出现下载慢、不能下载等问题,那就是网络问题,开个代理即可。我一直开着的,没有这类问题。(网络问题这里不能展开讲)
安装完成:
三、使用示例
3.1 Qt Creator
3.11 示例程序
打开Qt Creator,各种菜单什么的,自己过一遍即可。
在欢迎界面下,有很多示例项目。随便选一个,可能会有一个小的弹窗,这是这个项目的相关说明,可以看看,也可以直接关掉。
Qt Creator会默认转到项目配置界面:比如我这里选择MinGW编译套件(前面安装过程中安装了这个的),然后点击右下角的configure project
。
就会转到代码编辑的页面:
点击左下角的运行,即可运行示例程序。
3.12 新建C++项目
第一个:
构建系统,小项目可以选qmake,复杂系统选择cmake,qbs是现代化构建系统,可能使用的人不多。
项目细节,各种名称什么的,自己设置,Translation可以选择需要的语言,比如中文。
构建套件,根据需要选择即可,MinGW适合跨平台,GNU工具链支持好,用GCC编译嘛,Visual Studio这些软件也可以设置为GCC编译。MSVC就是微软编译器了,对Windows API支持最好,与Visual Studio这些完美兼容。
运行示例:
3.13 新建Python项目
解释器 Interpreter那里选择PySide 6
(Qt 6,Qt5是PySide2),当然现在可能还没安装,后面安装即可。
后见套件这里,选择Python(这个是你系统的python,一般你安装pythonn的时候会添加到环境变量,这里就会自动检测到,没有的话手动指定也可以),下面最好选择虚拟环境。
完成后根据提示安装所需的库:
form.ui
就是界面的代码(是XML格式的),双击,即可可视化地设计界面(Qt Designer
),比如我显示一行文字。
注意看绿色部分文字,ui文件需要转换成py文件,这个默认的ui文件,按下运行后会自动转换为py文件。如果你新建ui文件,或者使用pycharm,需要手动使用下图中的命令进行转换。
左下角运行:
运行后,.ui
文件会被编译成对应的py文件。
这个项目可以在Pycharm中打开,python解释器记得换成刚刚配置的虚拟环境中的那个:
在python中双击.ui
文件,即可打开Qt Designer
,进行界面的设计。
你也可以把Qt Designer
添加到pycharm的菜单栏中,路径示例:D:\QT\Tools\QtDesignStudio-4.1.1-lts\qt6_design_studio_reduced_version\bin\designer.exe
,qt6开头是qt6的。
然后在菜单栏-工具-外部工具
,即可打开Designer。
使用上面添加的Qt Designer新建一个界面,然后转换为python文件:
我执行命令的目录是项目所在目录,虚拟环境在该目录下的 .qtcreator/Python_3_11_7venv
,使用的是Qt6。
使用新的界面MainWindow:
3.2 Visual Studio
打开Visual Studio,选择继续但无需代码
。
点击菜单的扩展
,安装新的扩展,搜索Qt
,安装这个Qt Visual Studio Tools
。
关闭VS,即可开始安装,有个弹窗,点击Modify
,即可。
安装很快,因为之前已经下载了MSVC的相关内容。
打开VS,创建新的项目,即可看到Qt项目相关选项:
比如我选择QtWidgetsApplication
:点击红框位置,选择安装的Qt 构建工具(就是MSVC的Qmake
,因为没有添加到环境变量,所以这里要手动添加)
位置示例:D:\QT\6.7.3\msvc2019_64\bin\qmake.exe
Enable PCH Support
(启用预编译头支持):
功能:预编译头可以加速编译过程,特别是在大型项目中。通过预先编译一些不常更改的头文件,减少每次编译时的处理时间。
启用:如果你的项目包含多个头文件且编译时间较长,启用此选项可能会提高编译效率。
禁用:对于小型项目或频繁修改的项目,禁用可能更简单,避免潜在的复杂性。
点击Next后名称什么的自己选。
运行默认代码:
🟢Visual Studio Code
也是类似的,有很多Qt的扩展。
附录
附录 1:Additional Libraries 说明
组件名称 | 功能描述 |
---|---|
Active Qt | 提供与 ActiveX 控件的集成,适用于 Windows 平台的开发。 |
Qt 3D | 用于创建和渲染 3D 图形的框架,适合游戏和可视化应用。 |
Qt Charts | 提供图表和数据可视化功能,适合展示数据的应用。 |
Qt Connectivity | 支持蓝牙、NFC 和其他连接技术的功能,适合物联网应用。 |
Qt Data Visualization | 用于数据可视化,支持不同类型的图表和图形展示。 |
Qt Graphs (TP) | 提供图形和网络图的支持,适合复杂数据结构的可视化。 |
Qt HTTP Server (TP) | 用于创建 HTTP 服务器,适合 Web 应用开发。 |
Qt Image Formats | 支持多种图像格式的加载和保存,适合图形应用。 |
Qt Insight Tracker (TP) | 用于收集和分析用户行为数据,帮助优化用户体验。 |
Qt Language Server | 提供语言服务协议支持,适合开发支持 LSP 的编辑器和 IDE。 |
Qt Location (TP) | 提供地理位置相关功能,支持地图和定位服务。 |
Qt Lottie Animation | 支持 Lottie 动画文件的渲染,适合动态用户界面设计。 |
Qt Multimedia | 提供音频和视频处理功能,适合多媒体应用。 |
Qt Network Authorization | 提供网络授权和认证支持,适合安全性要求较高的应用。 |
Qt PDF | 用于处理和显示 PDF 文档,适合文档相关应用。 |
Qt Positioning | 提供定位功能,支持 GPS 和其他定位技术。 |
Qt Protobuf and Qt GRPC (TP) | 支持 Protobuf 和 gRPC 的网络通信,适合分布式系统开发。 |
Qt Quick 3D Physics | 提供 3D 物理仿真支持,适合游戏和仿真应用。 |
Qt Quick Effect Maker | 用于创建和编辑 Qt Quick 动画效果,适合视觉效果设计。 |
Qt Remote Objects | 提供远程对象通信支持,适合分布式应用开发。 |
Qt Sensors | 提供传感器数据访问功能,适合物联网和移动设备应用。 |
Qt Serial Bus | 支持串行总线通信,适合嵌入式和工业应用。 |
Qt Serial Port | 提供串行端口通信功能,适合设备间通信。 |
Qt Speech | 提供语音识别和合成支持,适合语音交互应用。 |
Qt State Machines | 支持状态机的实现,适合复杂交互和行为管理。 |
Qt Virtual Keyboard | 提供虚拟键盘功能,适合触摸屏应用。 |
Qt WebChannel | 支持 WebSocket 通信,适合 Web 和 Qt 应用间的交互。 |
Qt WebEngine | 嵌入式网页内容支持,基于 Chromium 引擎,适合现代 Web 应用。 |
Qt WebSockets | 提供 WebSocket 通信支持,适合实时数据交换应用。 |
Qt WebView | 嵌入网页内容的组件,适合在应用中展示 Web 内容。 |
附录2 :老版本安装
类别
这里勾选Archive
,然后点击筛选
,等待从远程仓库获取信息,即可看到下图结果。
Qt 5 最低版本是5.15。
它上面也提示了,这些老版本可能存在一些错误。总之尽可能选择新的稳定版本嘛。
此外,点击筛选后,可能会出现:
网络错误。你开个代理就行了,这个没必要说了吧,也不让说🤭。
附录3:更改Qt组件:Qt Maintenance Tool
找到 Qt Maintenance Tool
,这个是第一次安装的时候默认安装的。
根据需要操作即可: