Qt6 c++教程1简介

发布时间 2023-12-08 08:59:45作者: 磁石空杯

1 Qt6简介

Qt一个跨平台应用程序开发框架,旨在为桌面、嵌入式和移动平台创建具有统一用户界面(UI)的优秀软件应用程序。它为开发人员设计和构建优秀应用程序提供了一套强大的工具,而无需担心平台依赖性。

本章主要内容:

  • Qt介绍
  • 使用Qt的原因
  • 下载和安装Qt
  • 从源代码构建 Qt6

1.1 Qt简介

Qt是一个跨平台软件开发框架,适用于桌面、嵌入式和移动平台。它遵循"少编码、多创建、随处部署"的理念。它支持Windows、Linux、macOS、VxWorks、QNX、Android、iOS等平台。该软件还支持在裸机或FreeRTOS上运行的恩智浦(NXP)、瑞萨(Renesas)和意法半导体(STMicroelectronics)的多个微控制器(MCU)。

Qt的诞生是为了在不同平台上提供具有相同外观、感觉和功能的统一图形用户界面(GUI)。它不是一种编程语言,而是一个用C++编写的框架。Qt框架和工具具有开源和商业双重许可。

Qt采用模块化方法将相关功能组合在一起。Qt Essentials是Qt在所有平台上的基础。这些模块具有通用性,对大多数基于Qt的应用程序非常有用。Essential 模块可用于开放源代码。Qt Essentials 模块的例子包括 Qt Core、Qt GUI、Qt QML、Qt Widgets等。还有一些特殊用途的附加模块,它们提供特定的功能,并附带一定的许可义务。附加模块的例子有 Qt 3D、Qt Bluetooth、Qt Charts、Qt Data Visualization 等。除此之外,还有一些增值模块,如 Qt Automotive Suite、Qt for Device Creation 和 Qt for MCU等,都可以通过商业许可证获得。

欲了解有关不同Qt模块的更多信息,请访问 https://doc.qt.io/qt-6/qtmodules.html。

Qt于1995年发布供公众使用。Qt6是Qt的新的主要版本。其主要目标是为2020年及以后的需求做好准备,删除过时的模块,并提高可维护性。因此,Qt6中的一些架构变化可能会在一定程度上破坏与早期版本的向后兼容性。
下面概述了Qt 6中的一些基本修改:

  • 引入强类型
  • 将JavaScript 作为Qt建模语言 (QML) 的可选功能
  • 取消QML版本控制
  • 删除QObject和QML间的重复数据结构
  • 避免创建运行时数据结构
  • 将QML编译成高效的C++和本地代码
  • 支持隐藏实现细节
  • 更好地集成工具

1.2 使用Qt的原因

Qt是一个模块化、跨平台的应用程序开发框架。许多人对Qt的最大误解是将其视为图形用户界面框架。然而,Qt远不止是一个图形用户界面框架。它不仅包括一个图形用户界面模块,还包括一系列模块,使应用程序的开发更快、更容易在各种平台上扩展。使用Qt的最大好处是它能在各种平台上提供可移植性。以下是开发人员使用Qt的一些优势:

  • 为客户创造难以置信的用户体验,并提升公司品牌。
  • 跨平台
  • Qt让C++变得简单易用而著称。利用Qt,开发人员可以轻松创建具有流畅用户界面的高性能、可扩展的应用程序。
  • 面向未来,同时还拥有一个强大的生态系统。
  • 持不同的编程语言,是一个非常灵活可靠的框架。因此,Adobe、微软、三星、AMD、惠普、飞利浦和 MathWorks 等大公司都在使用 Qt开发应用程序。许多开源项目,如 VLC(以前称为 VideoLAN Client)、Open Broadcaster Software(OBS)和 WPS Office(WPS 是 Writer、Presentation 和 Spreadsheets 的缩写)也是基于 Qt 构建的。

Qt 的核心价值概述如下:

  • 跨平台性
  • 高度可扩展性
  • 易于使用
  • 内置世界一流的应用程序编程接口(API)、工具和文档
  • 可维护、稳定、兼容
  • 庞大的用户群体

1.3 下载并安装Qt

1.3.1 在线安装程序

在系统上安装Qt框架和工具有多种方法。你可以从Qt网站下载在线或离线安装程序,也可以自行构建源代码包。Qt建议首次安装时使用在线安装程序,以后修改安装时使用Qt维护工具。

安装程序允许你下载并安装以下组件:

  • Qt库
  • Qt Creator IDE
  • 文档和示例
  • Qt源代码
  • 附加模块

安装程序要求您使用Qt账户登录。如果没有Qt账户,可以在安装过程中注册。

您可以从以下链接下载:

参考资料

1.3.2 源码安装

以ubuntu22.04为例

$ sudo apt install build-essential cmake ninja-build git
$ sudo apt install qt6-base-dev qt6-base-private-dev qt6-declarative-dev qt6-declarative-private-dev qt6-tools-dev qt6-tools-private-dev qt6-scxml-dev qt6-documentation-tools libqt6core5compat6-dev qt6-tools-dev-tools qt6-l10n-tools qt6-shader-baker libqt6shadertools6-dev qt6-quick3d-dev qt6-quick3d-dev-tools libqt6svg6-dev libqt6quicktimeline6-dev libqt6serialport6-dev
$ sudo apt install clang-15 clangd-15 libclang-15-dev
$ sudo apt install libgl1-mesa-dev libvulkan-dev libxcb-xinput-dev libxcb-xinerama0-dev libxkbcommon-dev libxkbcommon-x11-dev libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xkb1 libxcb-randr0 libxcb-icccm4
$ git clone --recursive https://code.qt.io/qt-creator/qt-creator.git repo
$ cmake -G Ninja -S repo -B build -D CMAKE_BUILD_TYPE=Release
$ cmake --build build
$ cmake --install build/ --prefix qtcreator-install
# 启动
./qtcreator-install/bin/qtcreator

如果不是中文,可以在Edit-Preferences-Env-Interface中设置