零基础学QT、C++(一)安装QT

目录

如何快速学习QT、C++呢?

一、编译器、项目构建工具

1、编译器(介绍2款)

2、项目构建工具

二、安装QT

1、下载QT安装包

2、运行安装包

3、运行QT creator

4、导入开源项目

总结

闲谈

如何快速学习QT、C++呢?

那就是项目驱动法,搞一个感兴趣的项目来玩玩!

这个QT项目,每个组件都是作者手写的,俺想用来做一个简单数据管理系统玩玩

https://github.com/Liniyous/ElaWidgetTools

所以,当务之急,就需要搭建一个QT、C++的运行环境,然后运行这个项目

一、编译器、项目构建工具

在搭建之前呢,我就被各种编译器,还有那个cmake搞得晕头转向

1、编译器(介绍2款)

MSVC(Microsoft Visual C++)微软提供的一款强大的 C++ 编译器

MinGW(Minimalist GNU For Window)是个C/C++编译器

(我这里选择的是MSVC)反正能用就行~

他们的区别,就自行问ai

2、项目构建工具

Cmake就是一个项目构建工具(和Maven类似)

不过Maven还提供了第三方库的管理,下载,安装,删除等等

下图是Maven的项目配置文件pom.xml

下图是Cmakelist.txt文件

特性CMakeMaven
主要功能项目构建工具,生成构建系统(如 Makefile 或 Visual Studio 项目)项目构建工具 + 依赖管理工具
配置文件CMakeLists.txtpom.xml
依赖管理不直接提供依赖管理,需要手动或通过 find_package 查找库提供强大的依赖管理,自动下载和安装第三方库
跨平台支持支持跨平台(Windows、Linux、macOS 等)主要针对 Java 项目,跨平台性依赖于 JVM
构建系统生成生成 Makefile、Ninja、Visual Studio 项目等不生成构建系统,直接调用编译器(如 javac)
语言支持主要用于 C/C++,但也支持其他语言(如 Fortran)主要用于 Java,但也支持其他语言(通过插件)
插件生态插件较少,功能相对单一插件丰富,功能强大(如编译、测试、打包等)

二、安装QT

QT的安装面板会让我们选择安装MinGW编译器,也可以选择安装MSVC编译器

还会有qmake和Cmake的构建工具,这些我们都可以在面板里面自行选择

总之,QT面板已经为我们做了很多东西,我们只需要点点点就可以了,他都会集成好的

官方下载速度有点慢,而且QT自Qt 5.15版本后不在支持离线安装包下载(非商业版本,开源)

1、下载QT安装包

官方下载网站:

Index of /archive/qtcreator

清华园(推荐)速度快:

https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers

2、运行安装包

这里需要登录,自己注册一个就可以了,注册过程并不复杂

就是网络可能比较慢,耐心等待就行了,或者用用梯子

自定义安装 Custom Installation (自行选择安装目录)

自定义安装 Custom Installation (自行选择安装目录)

自定义安装 Custom Installation (自行选择安装目录)

跟着我的点就行了(如果后面有其他的安装需求,可以再打开这个面板,更新组件)

跟着我的点就行了(如果后面有其他的安装需求,可以再打开这个面板,更新组件)

跟着我的点就行了(如果后面有其他的安装需求,可以再打开这个面板,更新组件)

  • 我这里选择了MSVC编译器,没有选择MinGW(看个人选择吧)
  • QT版本我选择了6.8.2
  • 还有其他那些跟我的一样就行了

点击【安装】

接下来就耐心等待下载吧

如果出现弹窗(重试就行了)(期间他可能会弹出很多次,反正重试就可以了)

3、运行QT creator

我们可以创建一个项目看看

  • 这里就要选择构建工具(我们就选择Cmake吧)
  • Cmake和qmake的区别自行百度(或者问问ai)

创建一个项目,然后ctrl+R运行

4、导入开源项目

ElaWidgetToolshttps://github.com/Liniyous/ElaWidgetTools下载项目之后,放到一个文件夹里面

然后打开QT creator,选择打开项目

等待项目加载完成(下图是加载完成后的样子,有警告也问题不大)

加载完成后,直接ctrl+R运行(等待他编译一会就好了)

然后,就可以开始我们的魔改啦~

总结

1、了解C++的编译器、构建工具

2、安装QT creator,他里面集成好了C++编译器和构建工具

3、我们可以直接使用QT creator来运行项目,这里面还有很多丰富的示例,供我们学习

闲谈

  • QT creator里面有QT文档
  • 什么不懂搜什么
  • 不过现在有ai了,我都是ai梭哈,2333~

有什么不懂的,直接问ai,比百度来得快

  • 接下来就是快速过一遍菜鸟教程里面的C++
  • 然后开始看项目代码
  • 把项目代码丢给ai,让他加上注释
  • 对代码有疑惑,就问他为什么这样写

wxWidgets是一个开源的跨平台的C++构架库(framework)

桌面端框架还有很多很多...

C++学起来,当初配置环境就搞得我摸不着头脑

半天看不到 成果,心急得很!不过还好有大佬的耐心指导!

大佬b站:山岳两茫茫的个人空间-山岳两茫茫个人主页-哔哩哔哩视频

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32外设SPI FLASH应用实例

STM32外设SPI FLASH应用实例 1. 前言1.1 硬件准备1.2 软件准备 2. 硬件连接3. 软件实现3.1 SPI 初始化3.2 QW128 SPI FLASH 驱动3.3 乒乓存储实现 4. 测试与验证4.1 数据备份测试4.2 数据恢复测试 5 实例5.1 参数结构体定义5.2 存储参数到 SPI FLASH5.3 从 SPI FLASH 读取参数5…

Leetcode2080:区间内查询数字的频率

题目描述: 请你设计一个数据结构,它能求出给定子数组内一个给定值的 频率 。 子数组中一个值的 频率 指的是这个子数组中这个值的出现次数。 请你实现 RangeFreqQuery 类: RangeFreqQuery(int[] arr) 用下标从 0 开始的整数数组 arr 构造…

Spring Boot自动装配:约定大于配置的魔法解密

#### 一、自动装配的哲学思考 在传统Spring应用中,开发者需要手动配置大量的XML或JavaConfig。Spring Boot通过自动装配机制实现了**约定大于配置**的设计理念,其核心思想可以概括为: 1. **智能预设**:基于类路径检测自动配置 2…

Fiddler笔记

文章目录 一、与F12对比二、核心作用三、原理四、配置1.Rules:2.配置证书抓取https包3.设置过滤器4、抓取App包 五、模拟弱网测试六、调试1.线上调试2.断点调试 七、理论1.四要素2.如何定位前后端bug 注 一、与F12对比 相同点: 都可以对http和https请求进行抓包分析…

Python爬虫-猫眼电影的影院数据

前言 本文是该专栏的第46篇,后面会持续分享python爬虫干货知识,记得关注。 本文笔者以猫眼电影为例子,获取猫眼的影院相关数据。 废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) …

linux笔记:shell中的while、if、for语句

在Udig软件的启动脚本中使用了while循环、if语句、for循环,其他内容基本都是变量的定义,所以尝试弄懂脚本中这三部分内容,了解脚本执行过程。 (1)while循环 while do循环内容如下所示,在循环中还用了expr…

利用分治策略优化快速排序

1. 基本思想 分治快速排序(Quick Sort)是一种基于分治法的排序算法,采用递归的方式将一个数组分割成小的子数组,并通过交换元素来使得每个子数组元素按照特定顺序排列,最终将整个数组排序。 快速排序的基本步骤&#…

从零到一实现微信小程序计划时钟:完整教程

在本教程中,我们将一起实现一个微信小程序——计划时钟。这个小程序的核心功能是帮助用户添加任务、设置任务的时间范围,并且能够删除和查看已添加的任务。通过以下步骤,我们将带你从零开始实现一个具有基本功能的微信小程序计划时钟。 项目…

idea日常报错之UTF-8不可映射的字符

目录 一、UTF-8不可映射的字符的解决 1、出现这种报错的情形 2、具体解决办法 前言: 在我们日常代码编写的时候可能会遇到各式各样的错误,有时候并不是你改动了代码,而是莫名其妙就出现的报错,今天我就遇到一个在maven编译的时候…

人工智能技术-基于长短期记忆(LSTM)网络在交通流量预测中的应用

人工智能技术-基于长短期记忆(LSTM)网络在交通流量预测中的应用 基于人工智能的智能交通管理系统 随着城市化进程的加快,交通问题日益严峻。为了解决交通拥堵、减少交通事故、提高交通管理效率,人工智能(AI&#xff…

HTTP FTP SMTP TELNET 应用协议

1. 标准和非标准的应用协议 标准应用协议: 由标准化组织(如 IETF,Internet Engineering Task Force)制定和维护,具有广泛的通用性和互操作性。这些协议遵循严格的规范和标准,不同的实现之间可以很好地进行…

Matlab离线安装硬件支持包的方法

想安装支持树莓派的包,但是发现通过matlab安装需要续订维护服务 可以通过离线的方式安装。 1. 下载SupportSoftwareDownloader Support Software Downloader - MATLAB & Simulink 登录账号 选择对应的版本 2. 选择要安装的包 3.将下载的包copy到安装目录下 …

Django REST Framework (DRF) 中用于构建 API 视图类解析

Django REST Framework (DRF) 提供了丰富的视图类,用于构建 API 视图。这些视图类可以分为以下几类: 1. 基础视图类 这些是 DRF 中最基础的视图类,通常用于实现自定义逻辑。 常用类 APIView: 最基本的视图类,所有其…

MyBatis拦截器终极指南:从原理到企业级实战

在本篇文章中,我们将深入了解如何编写一个 MyBatis 拦截器,并通过一个示例来展示如何在执行数据库操作(如插入或更新)时,自动填充某些字段(例如 createdBy 和 updatedBy)信息。本文将详细讲解拦…

137,【4】 buuctf web [SCTF2019]Flag Shop

进入靶场 都点击看看 发现点击work会增加¥ 但肯定不能一直点下去 抓包看看 这看起来是一个 JWT(JSON Web Token)字符串。JWT 通常由三部分组成,通过点(.)分隔,分别是头部(Header&…

twisted实现MMORPG 游戏数据库操作封装设计与实现

在设计 MMORPG(大规模多人在线角色扮演游戏)时,数据库系统是游戏架构中至关重要的一部分。数据库不仅承担了游戏中各种数据(如玩家数据、物品数据、游戏世界状态等)的存储和管理任务,还必须高效地支持并发访…

【R语言】聚类分析

聚类分析是一种常用的无监督学习方法,是将所观测的事物或者指标进行分类的一种统计分析方法,其目的是通过辨认在某些特征上相似的事物,并将它们分成各种类别。R语言提供了多种聚类分析的方法和包。 方法优点缺点适用场景K-means计算效率高需…

超全Deepseek资料包,deepseek下载安装部署提示词及本地部署指南介绍

该资料包涵盖了DeepSeek模型的下载、安装、部署以及本地运行的详细指南,适合希望在本地环境中高效运行DeepSeek模型的用户。资料包不仅包括基础的安装步骤,还提供了68G多套独立部署视频教程教程,针对不同硬件配置的模型选择建议,以…

Java Spring boot 篇:常用注解

Configuration 作用 Configuration 注解的核心作用是把一个类标记为 Spring 应用上下文里的配置类。配置类就像一个 Java 版的 XML 配置文件,能够在其中定义 Bean 定义和 Bean 之间的依赖关系。当 Spring 容器启动时,会扫描这些配置类,解析其…

在 Ubuntu 20.04 为 Clash Verge AppImage 创建桌面图标教程

在 Ubuntu 20.04 为 AppImage 创建桌面图标教程 一、准备工作 确保你已经下载了 xxxx.AppImage 文件,并且知道它所在的具体路径。同时,你可以准备一个合适的图标文件(.png 格式)用于代表该应用程序,如果没有合适的图…