初学Qt之环境安装与 hello word

环境:

Qt Creator 4.11.0 (Community)

Qt 5.14.0

目录

1.Qt环境配置

1.1 下载Qt 5.14.0

1.2 注册Qt账号

1.3 安装Qt 

1.4 配置环境变量

2.创建项目

2.1 创建一个项目

2.2 初始代码解析 

2.3 可视化GUI

​编辑 2.4 hello word

2.4.1 可视化hello word

2.4.2 代码hello word

2.5.3 内存泄露问题


1.Qt环境配置

1.1 下载Qt 5.14.0

        点击蓝色字体直接跳转

       ​​​​​​​Qt下载​​​​​​​

        在网站中下载我们合适的版本,我选择的是Qt 5.14.0

        下载速度较慢,大家可以翻墙下载,这个就不教学了。 

1.2 注册Qt账号

        Qt账号注册

        接下来在上面的网站中注册我们的账号,这个也不多教学了。

        值得注意的是,在邮箱确认中一定要注意各个选项,不然会导致账户锁定。

1.3 安装Qt 

        打开我们的安装程序

        关键的来了,接下来要设置我们的组件,这两个必须勾选 ,其他的根据需要即可。

 

 

        接下来根据步骤来就可以了 

1.4 配置环境变量

        在我们的安装目录下找到我们的 bin 路径并且配置到环境变量中

        教程如下图 

2.创建项目

2.1 创建一个项目

        进入我们的 Qt Creator 中后点击左上角文件创建一个新项目

        可以看见以下界面,我们这样选择。

         接下来设置我们的项目名和保存路经

         下个又页面我们选择 qmake 

 

 

        接下来,我们进入下个页面 ,Qt会自动帮我们生成一些内置的类

        这边推荐改成方便自己使用的名字

        这个 form 一定要勾选上,和可视化息息相关

        下个页面是为了国际化,我们不需要进行设置

         下面两个页面默认即可,初学者暂时不需要了解

2.2 初始代码解析 

        看一个项目当然先从main.cpp入手了。

        为了节省时间,我把代码注释好了,大家直接看即可。

// main.cpp#include "mywidget.h"#include <QApplication>int main(int argc, char *argv[])  // main 形参就是命令行参数
{QApplication a(argc, argv);  // 编写Qt图形化界面一定要有QApplication对象myWidget w;        // 创建项目生成的类w.show();          // 创建一个控件对象显示出来 .hide方法就是隐藏return a.exec();   // 表示让程序执行起来
}

 

  

// mywidget.cpp#include "mywidget.h"
#include "ui_mywidget.h"  // form file 被 qmmake 生成的头文件#include <QLabel>myWidget::myWidget(QWidget *parent): QWidget(parent), ui(new Ui::myWidget)
{  ui->setupUi(this);    // 把 form file 生成的界面和当前 widget 关联起来// VVV 通过代码来构造界面,通常会在 myWidget/MainWindow 的构造函数中 VVV// 在堆上创建QLabel* label = new QLabel(this);// 给当前这个对象,指定一个父对象  this指向main中的 Widget w;// QLabel label;  // 在栈上创建label->setText(QString("@Yubendan")); // 默认左上角
}myWidget::~myWidget()
{delete ui;  // 释放
}
// mywidget.h#ifndef MYWIDGET_H
#define MYWIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class myWidget; }
QT_END_NAMESPACEclass myWidget : public QWidget  // 创建项目时选择的父类 包含 QWidget 头文件
{                                // Qt头文件和类名都是一致的Q_OBJECT                     // Qt内置的宏,本质上是文本替换public:myWidget(QWidget *parent = nullptr);~myWidget();private:Ui::myWidget *ui;      // 和 form file 密切相关
};
#endif // MYWIDGET_H

 

2.3 可视化GUI

        双击这个文件

 2.4 hello word

2.4.1 可视化hello word

        这边我们使用 Label 来显示我们的文字 hello word

        直接拖拽过去,双击修改就可以了

2.4.2 代码hello word

        接下来,我们用代码实现,相信大家已经在上面的代码中看见了。

        相信学过cpp的都很容易理解这串代码。

        值得注意的是,由于早期的 C++ 中的 string 等容器并不好用。

        我们的 Qt 就内置了自己的 Qstring QList Qmap 等,来方便使用。

        当然也是兼容C++的。

        虽然现在C++已经很好用了,但这边还是推荐使用Qt内置的。

2.5.3 内存泄露问题

        大家看见我们上面的代码,是 new 了,但没有 delete 会不会出现内存泄露呢?

        很好,大家能想到这些,就已经是个合格的 C++ 使用者了。

        答案是不会

        label 对象会合适的时候被析构释放~~(虽然没有手动写 delete,确实能释放)之所以能够把对象

释放掉,主要是因为把这个对象是挂到了对象树上。

        

        所以,我们更推荐使用堆的方式来实现 。

        而在栈上创建会出现什么问题呢?看图

        最后再提一嘴

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

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

相关文章

Spring Boot知识管理系统:创新与实践

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…

公开课学习:软件测试面试3大难题

1.验证码机制的处理&#xff1a;自动化遇到验证码怎么办?怎么测试? 流程&#xff1a;先识别元素&#xff0c;再对元素进行操作。实际上&#xff0c;验证码无法用自动化技术操作解决&#xff0c;都是由开发给万能码&#xff0c;或者屏蔽验证码去解决&#xff01;那如果不能屏…

数据结构——优先级队列(堆)

概念&#xff1a; 在操作数据的时候&#xff0c;操作的数据具有优先级&#xff0c;需要返回最高级别的优先级数据或者添加新对象时就需要用到优先级队列。 jdk1.8中的PrioriytQueue底层实现了堆这种数据结构实际上&#xff0c;堆其实就是在完全二叉树进行调整而来。 堆&#x…

C++STL--------vector

文章目录 一、vector常用接口介绍1、initializer_list2、接口有很多类似3、typeid(类型).name()4、find() 函数5、内置类型构造 二、vector()常用接口模拟实现 截图来源网站&#xff1a;https://legacy.cplusplus.com/reference/vector/vector/ 一、vector常用接口介绍 是一个…

哪种护眼大路灯孩子用着最好?公认最好的护眼大路灯

哪种护眼大路灯孩子用着最好&#xff1f;最近也有不少家长关注到了孩子视力健康的这个情况&#xff0c;很着急开始寻找各种能够减少孩子因为不良光线影响视力健康的方法&#xff0c;其中大路灯以良好的表现成为家长们的首选&#xff0c;但快速发展的市场中&#xff0c;却涌入了…

【C】C语言常见概念~

C语言常见概念 转义字符 转义字符&#xff0c;顾名思义&#xff0c;转变原来意思的字符 比如 #include <stdio.h> int main() {printf("abcndef");return 0; }输出的结果为&#xff1a; 将代码修改一下&#xff1a; #include <stdio.h> int main(…

双目视觉搭配YOLO实现3D测量

一、简介 双目&#xff08;Stereo Vision&#xff09;技术是一种利用两个相机来模拟人眼视觉的技术。通过对两个相机获取到的图像进行分析和匹配&#xff0c;可以计算出物体的深度信息。双目技术可以实现物体的三维重建、距离测量、运动分析等应用。 双目技术的原理是通过两…

SpringBoot基础(五):集成JUnit5

SpringBoot基础系列文章 SpringBoot基础(一)&#xff1a;快速入门 SpringBoot基础(二)&#xff1a;配置文件详解 SpringBoot基础(三)&#xff1a;Logback日志 SpringBoot基础(四)&#xff1a;bean的多种加载方式 SpringBoot基础(五)&#xff1a;集成JUnit5 目录 一、JUnit…

AIGC毕设项目分享:基于RAG的数字人对话系统及其应用

本研究的主要目标是设计并实现一个基于检索增强生成&#xff08;RAG&#xff09;技术的数字人对话系统&#xff0c;旨在提升数字人系统在多轮对话中的上下文管理、情境感知能力以及动态内容生成效果。系统结合了深度学习中的最新大语言模型技术&#xff0c;通过引入RAG框架来增…

K8S配置MySQL主从自动水平扩展

前提环境 操作系统Ubuntu 22.04 K8S 1.28.2集群&#xff08;1个master2个node&#xff09; MySQL 5.7.44部署在K8S的主从集群 metrics-server v0.6.4 概念简介 在K8s中扩缩容分为两种 ●Node层面&#xff1a;对K8s物理节点扩容和缩容&#xff0c;根据业务规模实现物理节点自动扩…

爬虫案例——网易新闻数据的爬取

案例需求&#xff1a; 1.爬取该新闻网站——&#xff08;网易新闻&#xff09;的数据&#xff0c;包括标题和链接 2.爬取所有数据&#xff08;翻页参数&#xff09; 3.利用jsonpath解析数据 分析&#xff1a; 该网站属于异步加载网站——直接网页中拿不到&#xff0c;需要…

MySQL-08.DDL-表结构操作-创建-案例

一.MySQL创建表的方式 1.首先根据需求文档定义出原型字段&#xff0c;即从需求文档中可以直接设计出来的字段 2.再在原型字段的基础上加上一些基础字段&#xff0c;构成整个表结构的设计 我们采用基于图形化界面的方式来创建表结构 二.案例 原型字段 各字段设计如下&…

深入理解线性表--顺序表

目录 顺序表- Seqlist -> sequence 顺序 list 表 顺序表的概念 问题与解答 顺序表的分类 静态顺序表 动态顺序表 问题与解答(递进式) 动态顺序表的实现 尾插 头插 尾删 头删 指定位置插入 指定位置删除 销毁 总结 前言&#xff1a;线性表是具有相同特性的一类数据结构…

2024 年 04 月编程语言排行榜,PHP 排名创新低?

编程语言的流行度总是变化莫测&#xff0c;每个月的排行榜都揭示着新的趋势。2024年4月的编程语言排行榜揭示了一个引人关注的现象&#xff1a;PHP的排名再次下滑&#xff0c;创下了历史新低。这种变化对于PHP开发者和整个技术社区来说&#xff0c;意味着什么呢&#xff1f; P…

现代数字信号处理I-P3 MVUE学习笔记

目录 1. 参数估计问题的提出与本质 2. 估计的性质 2.1 Ancillary&#xff08;多余估计&#xff09; 例1&#xff0c;Ancillary估计量 2. Uniformly Optimal 3. Sufficiency充分性 3.1 统计量充分性定义 例2&#xff1a;利用充分统计量定义获取伯努利分布的充分统计量 …

Anaroute - 理论学习(一)

一、贡献&#xff1a; 框架能够在考虑特定约束的同时&#xff0c;高效地完成复杂AMS设计的布线&#xff0c;并实现签署质量的性能。 提出了一种对称性约束的分配算法&#xff0c;根据引脚位置分配合适的网络匹配要求新的引脚聚类策略&#xff0c;以实现规律性的布线模式&…

微知-Bluefield DPU使用flint烧录固件报错MFE_NO_FLASH_DETECTED是什么?MFE是什么?

文章目录 背景一些报错场景MFE是什么&#xff1f;有哪些MFE 背景 在DPU的fw操作flint的时候&#xff0c;很多命令都会报这个错误&#xff1a;MFE_NO_FLASH_DETECTED&#xff0c;早期很疑惑并且猜测MFE是Mellanox Firmware Engine。实际并不是&#xff0c;具体还得走到mellanox…

2014年国赛高教杯数学建模B题创意平板折叠桌解题全过程文档及程序

2014年国赛高教杯数学建模 B题 创意平板折叠桌 某公司生产一种可折叠的桌子&#xff0c;桌面呈圆形&#xff0c;桌腿随着铰链的活动可以平摊成一张平板&#xff08;如图1-2所示&#xff09;。桌腿由若干根木条组成&#xff0c;分成两组&#xff0c;每组各用一根钢筋将木条连接…

2024 第一次周赛

A: 题目大意 骑士每连续 i 天每天会得到 i 个金币&#xff0c;&#xff08;i 1&#xff0c; 2&#xff0c; 3 &#xff0c; …&#xff09;,那么展开看每一天可以得到的金币数&#xff1a;1 2 2 3 3 3 4 4 4 5 5 5 5 5 … 可以发现就是1个1 &#xff0c;2个2, 3个3…,那么我…

php 生成随机数

记录:随机数抽奖 要求:每次生成3个 1 - 10 之间可重复(或不可重复)的随机数,10次为一轮,每轮要求数字5出现6次、数字4出现3次、…。 提炼需求: 1,可设置最小数、最大数、每次抽奖生成随机数的个数、是否允许重复 2,可设置每轮指定数字的出现次数 3,可设置每轮的抽奖…