零基础学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文件
| 特性 | CMake | Maven |
|---|---|---|
| 主要功能 | 项目构建工具,生成构建系统(如 Makefile 或 Visual Studio 项目) | 项目构建工具 + 依赖管理工具 |
| 配置文件 | CMakeLists.txt | pom.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、导入开源项目
ElaWidgetTools
https://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站:山岳两茫茫的个人空间-山岳两茫茫个人主页-哔哩哔哩视频
相关文章:
零基础学QT、C++(一)安装QT
目录 如何快速学习QT、C呢? 一、编译器、项目构建工具 1、编译器(介绍2款) 2、项目构建工具 二、安装QT 1、下载QT安装包 2、运行安装包 3、运行QT creator 4、导入开源项目 总结 闲谈 如何快速学习QT、C呢? 那就是项目驱动法&…...
SQL注入(SQL Injection)详解与实战
文章目录 一、什么是SQL注入?二、常见SQL注入类型三、手动注入步骤(以CTF题目为例)四、CTF实战技巧五、自动化工具:SQLMap六、防御措施七、CTF例题八、资源推荐 一、什么是SQL注入? SQL注入是一种通过用户输入构造恶意…...
【Prometheus】prometheus结合domain_exporter实现域名监控
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
Java 设计模式之命令模式
文章目录 Java 设计模式之命令模式概述UML代码实现简单实现复杂实现 Java 设计模式之命令模式 概述 命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可…...
BT401双模音频蓝牙模块如何开启ble的透传,有什么注意事项
BT401音频蓝牙模块如何开启ble的透传? 首先BT401的蓝牙音频模块,分为两个版本,dac版本和iis数字音频版本 DAC版本:就是BT401蓝牙模块【9和10脚】直接输出模拟音频信号,也就是说,直接推动耳机可以听到声音 …...
利用二分法+布尔盲注、时间盲注进行sql注入
一、布尔盲注: import requestsdef binary_search_character(url, query, index, low32, high127):while low < high:mid (low high 1) // 2payload f"1 AND ASCII(SUBSTRING(({query}),{index},1)) > {mid} -- "res {"id": payloa…...
Vue 项目登录的基本流程
Vue 用户登录的基本流程包括以下6个步骤: 步骤: 1. 创建登录表单 在前端,首先要创建一个登录表单,用户输入账号(用户名、邮箱、手机号等)和密码。 示例:Login.vue <template><div…...
kubernetes源码分析 kubelet
简介 从官方的架构图中很容易就能找到 kubelet 执行 kubelet -h 看到 kubelet 的功能介绍: kubelet 是每个 Node 节点上都运行的主要“节点代理”。使用如下的一个向 apiserver 注册 Node 节点:主机的 hostname;覆盖 host 的参数࿱…...
Web3 开发者周刊 36 | 构建自主未来:Agent、可扩展性与赏金
欢迎来到 Web3 开发者周刊 36,这里汇聚了赋能您的 Web3 构建之旅的各种资源。本周我们将剖析基于Agent的系统,讨论来自 Vitalik 关于以太坊 L1 和 L2 的最新思考,并提供最新高价值Bounty消息。 开始Build吧! ✅ One Trillion Age…...
零基础入门机器学习 -- 第十一章机器学习模型的评估与优化
如何判断你的模型到底行不行? 11.1 为什么需要评估模型? 场景设定:信用卡欺诈检测 想象你是ABC银行的风控经理,你每天的工作就是盯着上百万笔交易,防止客户的信用卡被盗刷。 你们银行新推出了一款机器学习模型&…...
菜鸟之路Day15一一IO流(一)
菜鸟之路Day15一一IO流(一) 作者:blue 时间:2025.2.8 文章目录 菜鸟之路Day15一一IO流(一)0.概述1.初识IO流1.1.什么是IO流?1.2.IO流的作用1.3.IO流的分类 2.IO流的体系结构3.字节输出流的基本…...
动手学Agent——Day2
文章目录 一、用 Llama-index 创建 Agent1. 测试模型2. 自定义一个接口类3. 使用 ReActAgent & FunctionTool 构建 Agent 二、数据库对话 Agent1. SQLite 数据库1.1 创建数据库 & 连接1.2 创建、插入、查询、更新、删除数据1.3 关闭连接建立数据库 2. ollama3. 配置对话…...
JSONObject,TreeUtil,EagelMap,BeanUtil使用
目录 JSONObject的使用 TreeUtil的使用 EagleMap使用 安装 application.yml配置 springboot导入依赖 配置信息 简单使用 如果想获取这个json字符串里面的distance的值 BeanUtil拷贝注意 JSONObject的使用 假如我现在要处理这样的json数据 可以直接使用JSONUtil.parseObj…...
Unity嵌入到Winform
Unity嵌入到Winform Winform工程🌈...
TCP/UDP协议与OSI七层模型的关系解析| HTTPS与HTTP安全性深度思考》
目录 OSI 7层模型每一层包含的协议: TCP和UDP协议: TCP (Transmission Control Protocol): UDP (User Datagram Protocol): 数据包流程图 TCP与UDP的区别: 传输层与应用层的关联 传输层和应用层的关联…...
《Zookeeper 分布式过程协同技术详解》读书笔记-2
目录 zk的一些内部原理和应用请求,事务和标识读写操作事务标识(zxid) 群首选举Zab协议(ZooKeeper Atomic Broadcast protocol)文件系统和监听通知机制分布式配置中心, 简单Demojava code 集群管理code 分布式锁 zk的一…...
缺陷检测之图片标注工具--labme
一、labelme简介 Labelme是开源的图像标注工具,常用做检测,分割和分类任务的图像标注。 它的功能很多,包括: 对图像进行多边形,矩形,圆形,多段线,线段,点形式的标注&a…...
机器学习_13 决策树知识总结
决策树是一种直观且强大的机器学习算法,广泛应用于分类和回归任务。它通过树状结构的决策规则来建模数据,易于理解和解释。今天,我们就来深入探讨决策树的原理、实现和应用。 一、决策树的基本概念 1.1 决策树的工作原理 决策树是一种基于…...
请解释一下Standford Alpaca格式、sharegpt数据格式-------deepseek问答记录
1 Standford Alpaca格式 json格式数据。Stanford Alpaca 格式是一种用于训练和评估自然语言处理(NLP)模型的数据格式,特别是在指令跟随任务中。它由斯坦福大学的研究团队开发,旨在帮助模型理解和执行自然语言指令。以下是该格式的…...
ubuntu 安装管理多版本python3 相关问题解决
背景:使用ubuntu 22.04 默认python 未3.10.编译一些模块的时候发现需要降级到python3.9.于是下载安装 下载: wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tgz解压与编译 tar -xf Python-3.9.16.tgz cd Python-3.9.16 ./configure -…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
ui框架-文件列表展示
ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
















