Qt 开发基础:版本演进、常用工具与多平台安装

1. Qt 简介

Qt 是一个跨平台的 C++ 应用程序开发框架,由挪威的 Trolltech 公司于 1991 年开发,最初名为 Qt(发音为"cute")。Qt 提供了一套完整的 GUI 工具包,同时也支持非 GUI 程序的开发,如命令行工具和服务器端应用。它被广泛应用于桌面应用、嵌入式系统、移动应用和工业自动化等领域。

Qt 的核心优势在于其"一次编写,处处编译"的跨平台能力,开发者可以使用同一套代码在 Windows、Linux、macOS、Android、iOS 以及各类嵌入式 ARM 平台上编译运行,大幅降低了多平台开发与维护的成本。

2. Qt 发展历程

Qt 经历了多个重要版本阶段,每个版本都带来了显著的功能改进和架构变化。

Qt 1.x - Qt 4.x:早期发展阶段

Qt 1.0 于 1995 年正式发布,最初仅支持 Unix/X11 平台。1999 年 Qt 2.0 发布,引入了模板库和国际化支持。2001 年 Qt 3.0 发布,增强了跨平台能力并支持 Windows 和 macOS。2005 年 Qt 4.0 发布,这是一次重大架构重构,引入了全新的图形视图框架、信号槽机制的优化以及更完善的跨平台支持。

Qt 5.x:模块化与性能提升

Qt 5.0 于 2012 年发布,是另一个重要的里程碑版本。Qt 5 将核心功能拆分为多个独立模块,如 Qt Core、Qt GUI、Qt Widgets、Qt QML 等,使开发者可以按需引入模块,减小应用体积。同时,Qt 5 引入了 Qt Quick 和 QML 语言,为开发流畅的触摸界面和动画效果提供了更高效的方案。Qt 5 还加强了对 OpenGL、Vulkan 等图形 API 的支持,显著提升了渲染性能。

Qt 6.x:现代化与长期支持

Qt 6.0 于 2020 年 12 月发布,是当前最新的主要版本系列。Qt 6 在架构上进一步现代化,重构了图形渲染管线,默认使用 RHI(Rendering Hardware Interface)抽象层,支持 Direct3D、Metal 和 Vulkan 等底层图形 API。Qt 6 还引入了 Qt Quick 3D、改进的 QML 引擎和更高效的 C++17 支持。Qt 6 提供 LTS(长期支持)版本,如 Qt 6.2、Qt 6.5 和 Qt 6.8,适合企业级项目长期稳定使用。

版本系列 发布时间 主要特点
Qt 4.x 2005 年 架构重构,图形视图框架,跨平台增强
Qt 5.x 2012 年 模块化设计,Qt Quick/QML,性能提升
Qt 6.x 2020 年 RHI 渲染抽象,Qt Quick 3D,C++17 支持

3. 常用工具

Qt 生态提供了丰富的开发工具,覆盖从界面设计、项目管理到性能分析的完整开发流程。

3.1 Qt Creator

Qt Creator 是 Qt 官方提供的集成开发环境(IDE),支持代码编辑、调试、UI 设计和版本控制集成。它内置了 Qt Designer 可视化界面编辑器,支持拖拽式设计 Widgets 界面,并集成了 QML 编辑器和 Qt Quick 设计器,是 Qt 开发的首选工具。

3.2 Qt Designer

Qt Designer 是独立的界面设计工具,用于可视化创建和编辑 Qt Widgets 界面。开发者可以通过拖拽控件、设置布局和属性来快速搭建界面,生成的 .ui 文件可被 Qt Creator 或命令行工具转换为 C++ 代码。

3.3 Qt Linguist

Qt Linguist 是 Qt 的国际化(i18n)翻译工具,帮助开发者将应用程序界面翻译为多种语言。它配合 lupdate 和 lrelease 命令行工具使用,实现翻译文件的提取、编辑和编译,是面向全球发布应用的重要工具。

3.4 qmake 与 CMake

qmake 是 Qt 传统的构建工具,基于 .pro 项目文件生成 Makefile,简单易用。CMake 是更通用的跨平台构建系统,从 Qt 6 开始成为官方推荐的构建工具,支持更复杂的项目结构和第三方依赖管理。

3.5 命令行工具

Qt 还提供了一系列实用的命令行工具,包括 moc(元对象编译器)、uic(UI 编译器)、rcc(资源编译器)以及 qmlscene、qmlruntime 等 QML 运行调试工具,这些工具在构建和调试过程中发挥着重要作用。

4. Qt 的安装

4.1 Windows 平台

在 Windows 平台安装 Qt 主要推荐使用官方在线安装器,步骤如下:

  1. 访问 Qt 官方网站下载 Qt Online Installer(在线安装器)。
  2. 运行安装器,登录 Qt 账号(没有账号需先注册)。
  3. 选择安装目录,建议使用默认路径或自定义无中文路径。
  4. 在组件选择界面,根据需求勾选 Qt 版本(如 Qt 6.5.3)、编译套件(如 MSVC 2019 64-bit 或 MinGW 11.2.0)以及 Qt Creator 和附加模块。
  5. 点击安装,等待下载和安装完成。
  6. 安装完成后,在 Qt Creator 中配置对应的编译器套件(Kit),即可创建和编译 Qt 项目。

需要注意的是,MSVC 套件需要预先安装对应版本的 Visual Studio 或 Build Tools,MinGW 套件则自带编译器,无需额外安装。

4.2 Linux 平台

Linux 平台安装 Qt 有两种常见方式:使用发行版软件包管理器或使用官方在线安装器。

使用软件包管理器安装

对于 Ubuntu/Debian 系统,可以使用 apt 命令安装 Qt 开发包:

bash 复制代码
sudo apt update
sudo apt install qt6-base-dev qt6-tools-dev-tools qtcreator

对于 Fedora/RHEL 系统,可以使用 dnf 命令:

bash 复制代码
sudo dnf install qt6-qtbase-devel qt6-qttools-devel qt-creator

这种方式安装简单,但版本可能不是最新,适合快速体验和一般开发。

使用官方在线安装器

从 Qt 官网下载 Linux 版在线安装器,赋予执行权限后运行:

bash 复制代码
chmod +x qt-online-installer.run
./qt-online-installer.run

安装流程与 Windows 类似,选择安装目录、Qt 版本和编译套件(通常选择 GCC 64-bit)。安装完成后,在 Qt Creator 中配置 GCC 编译器套件即可使用。

4.3 ARM 平台

ARM 平台广泛应用于嵌入式设备、树莓派和部分服务器。Qt 在 ARM 平台的安装方式取决于目标设备的操作系统和架构。

4.3.1 直接安装

对于运行 Linux 的 ARM 设备(如树莓派、飞腾、鲲鹏等),可以使用软件包管理器直接安装 Qt:

bash 复制代码
sudo apt update
sudo apt install qt6-base-dev qt6-tools-dev-tools

这种方式安装的是针对 ARM 架构编译好的 Qt 库,适用于直接在设备上进行开发和运行。

4.3.2 交叉编译安装

对于资源受限的嵌入式 ARM 设备,通常需要在开发主机上进行交叉编译。步骤如下:

  1. 在开发主机上安装交叉编译工具链,如 arm-linux-gnueabihf-gcc 或 aarch64-linux-gnu-gcc。
  2. 下载 Qt 源码包,使用交叉编译工具链配置并编译 Qt 库。
  3. 将编译生成的 Qt 库和头文件部署到目标 ARM 设备。
  4. 在开发主机上使用 Qt Creator 配置交叉编译套件,编写代码并交叉编译生成 ARM 可执行程序。
  5. 将可执行程序拷贝到 ARM 设备上运行。

交叉编译需要仔细配置 sysroot、编译器路径和 Qt 模块选项,是嵌入式开发中较为复杂但非常关键的环节。

5. 总结

Qt 作为成熟的跨平台开发框架,经历了从 Qt 4 到 Qt 6 的持续演进,功能日益强大,生态不断完善。无论是桌面应用、嵌入式系统还是移动开发,Qt 都提供了完整的工具链和灵活的安装方式。开发者可以根据目标平台和项目需求,选择合适的 Qt 版本、编译套件和安装方案,快速搭建高效的开发环境。

相关推荐
下页、再停留2 小时前
【C#桌面客户端系列学习-8】批量导出数据为csv格式
开发语言·c#·visual studio
菜鸟~noob2332 小时前
【电子战】 第26篇:大气衰减——氧气与水汽吸收【含matlab代码】
开发语言·matlab
菜鸟~noob2332 小时前
【电子战】第25篇:自由空间、双射线与菲涅尔区【含matlab代码】
开发语言·算法·matlab
梅菲塔亚2 小时前
华为云从入门到实战
开发语言·华为云·php
霸道流氓气质3 小时前
幂等性与 Upsert:防止重复操作产生副作用的技术
开发语言·php
牛奔3 小时前
mise 管理多版本 Go 项目
开发语言·前端·chrome·后端·golang
波力海苔夹心脆6753 小时前
C# 视觉检测实战:PLC 按钮触发 VisionPro 检测,OK 亮灯 / NG 灭灯(西门子 PLC,含界面显示与图片存档)
开发语言·经验分享·c#·自动化·视觉检测·.net
2601_962885723 小时前
如何用 Python 计算 BBI 多空指标?
开发语言·python