首页 > 编程语言 >Qt6 c++教程1简介

Qt6 c++教程1简介

时间:2023-12-08 09:01:01浏览次数:39  
标签:Qt6 qt6 教程 Qt 模块 dev c++ https qt

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中设置

标签:Qt6,qt6,教程,Qt,模块,dev,c++,https,qt
From: https://www.cnblogs.com/testing-/p/17883436.html

相关文章

  • 无涯教程-Angular7 - 简介
    Angular7是一个开放源代码JavaScript框架,用于在JavaScript, html 和Typescript(JavaScript的超集)中构建Web应用程序和应用程序。Angular为animation,httpservice和materials提供了内置功能,这些功能又具有auto-complete,naigation,toolbar,menus等功能。代码以Typescript编写......
  • LUNIX安装FTP服务器的详细教程
    1.打开终端,进入root模式。在终端中输入:sudosu,回车后提示输入密码,输入密码即可。2.安装vsftpd软件。首先需要联网,或者通过新立德软件安装。如果需要卸载软件,可以使用命令sudoapt-getremovevsftpd。安装命令为sudoapt-getinstallvsftpd。3.安装完成后,默认会在文件系统下的/......
  • C++随机数
    C++中产生随机数的方式有产生一个随机数和产生一系列不重复的随机数两种方式;1.产生单个随机数通过rand()函数,需要先设置不同随机数种子,否则后面生成的每个随机数都一样,在此可以使用当前的时间作为种子。#include<cstdlib>#include<random>srand((unsigne......
  • 无涯教程-Erlang - is_alive函数
    如果本地节点处于活动状态并且可以是分布式系统的一部分,则返回true。否则,它返回false。is_alive-语法is_alive()is_alive-返回值如果本地节点处于活动状态并且可以是分布式系统的一部分,则返回true。否则,它返回false。-module(helloLearnfk).-export([start/0]).sta......
  • 无涯教程-Erlang - spawn函数
    这用于创建新进程并对其进行初始化。spawn-语法spawn(Function)Function - 需要产生的功能。spawn-返回值此方法返回一个进程ID。-module(helloLearnfk).-export([start/0]).start()->spawn(fun()->server("Hello")end).server(Message)->io:f......
  • 无涯教程-Erlang - unregister函数
    这用于注销系统中的进程。unregister-语法unregister(atom)atom-这是要赋予该过程的注册名称。unregister-示例-module(helloLearnfk).-export([start/0,call/2]).call(Arg1,Arg2)->io:fwrite("~p~n",[Arg1]).start()->Pid=spawn(?MODULE,cal......
  • tiktok电商入门完整教程,新手小白一定要看
    随着短视频的兴起,越来越多的人开始关注如何在TikTok上开展电商业务。对于新手小白来说,了解如何入门并快速掌握TikTok电商运营技巧至关重要。本文将为您提供一份完整的TikTok电商入门教程,帮助您从零开始构建自己的电商业伴来详细了解一下吧。一、了解TikTok电商模式TikTok电商主要是......
  • 海外抖音tiktok运营详细教程,手把手教你轻松玩转tiktok
    在当今这个数码时代,社交媒体平台已经成为了企业、个人、组织等各类用户进行宣传、推广、营销、社交等活动的重要渠道。其中,海外抖音tiktok是一个备受关注的平台,它在全球范围内拥有超过10亿的用户,其中不少用户是年轻人,因此对于那些想要拓展年轻用户市场的企业来说,tiktok的重要性不言......
  • 无涯教程-Erlang - register函数
    这用于在系统中注册进程。register-语法register(atom,pid)atom-这是要赋予该过程的注册名称。pid  -这是需要绑定到原子的进程ID。register-示例-module(helloLearnfk).-export([start/0,call/2]).call(Arg1,Arg2)->io:fwrite("~p~n",[Arg1]).......
  • C++socket服务器与客户端简单通信流程
    服务器和客户端简单通信的流程,做一个简单的复习:1.服务器创建的流程代码如下,各个重要函数已经写注释:#include<iostream>//推荐加上宏定义#defineWIN32_LEAN_AND_MEAN#include<winsock2.h>#include<Windows.h>#pragmacomment(lib,"ws2_32")usingnamespacestd;i......