初识Qt | 从安装到编写Hello World程序
文章目录
- 1.前端开发简单分类
- 2.Qt的简单介绍
- 3.Qt的安装和环境配置
- 4.创建简单的Qt项目
1.前端开发简单分类
前端开发,这里是一个广义的概念,不单指网页开发,它的常见分类
- 网页开发:前端开发的主要领域,使用HTML、CSS 和 JavaScript等技术来创建运行在浏览器中的应用
- 桌面应用开发:虽然桌面应用通常是由后端语言(如C++、Java或C#)开发的,但现在也可以使用前端技术来开发桌面应用(电脑上的应用)。例如,Electron框架允许开发者使用HTML、CSS和JavaScript来创建跨平台的桌面应用
- 移动应用开发:开发手机应用,比如使用Java开发Android应用。
2.Qt的简单介绍
Qt 是⼀个 跨平台(Linux、Mac、Windows)的 C++ 图形⽤⼾界⾯(GUI) 应⽤程序框架。简单来说Qt用来开发PC端的应用程序,Windows下(主要是在Windows上开发):WPS Office 办公软件、VirtualBox等,Linux的KDE桌面都是使用Qt来开发的。当然Qt也支持移动应用开发,但是这是一个边缘的解决方案。
框架和库的理解
框架是各位大佬编写的解决一些问题的通用代码,我们普通的程序员在这些大佬的基础之上,填充代码完成自己的需求,这可谓是站在巨人的肩膀上!当然框架会限定我们编写的代码的自由,但能保证我们编写出来代码的下限!
在编程中,自由,就意味着更容易出错,比如:C语言中的指针很灵活,为程序员提供更加自由的操作,但是指针也更容易出错;C/C++为提供自由内存管理,但是也更容易出错!Java就不用考虑这种问题,当然自由也不都是不好的,一些东西不够灵活,注定了有些事情是做不了的!
对应库也是,大佬写的代码,但是库的使用主体是程序员,什么时候使用库,使用什么库,对库函数的调用使用在代码的什么地方,程序员能更自由的控制,而框架是相对固定的!
Windows下的桌面应用开发方案
- 调用原始的Windows系统API
- MFC,的用于创建Windows应用程序的应用程序框架。由Microsoft公司提供,MFC是为C++语言设计的,它提供了一组类,这些类封装了Windows API,使得开发Windows应用程序更加方便。
- 使用Qt方案(比较主流的方案)
- C#(“C Sharp”)由Microsoft开发的面向对象的编程语言开发
- Electron框架允许开发者使用HTML、CSS和JavaScript来创建跨平台的桌面应用,但是这样的方案比较大的缺点是效率问题,当然也会有一些应用用这种方式开发:如VSCode
Qt 的发展史
1991 年 Qt 最早由奇趣科技开发;
1996 年 进⼊商业领域,它也是⽬前流⾏的 Linux 桌⾯环境 KDE 的基础;
2008 年 奇趣科技被诺基亚公司收购,Qt 称为诺基亚旗下的编程语⾔;
2012 年 Qt ⼜被 Digia 公司收购;
2014 年 4 ⽉ 跨平台的集成开发环境 Qt Creator3.1.0 发布,同年 5 ⽉ 20 ⽇发布了 Qt 5.3 正式版,⾄ 此 Qt 实现了对 IOS、Android、Embedded 等各平台的全⾯⽀持。
Qt 的优点
-
跨平台,⼏乎⽀持所有的平台;
-
可以进⾏嵌⼊式开发。
-
⼀定程度上简化了内存回收机制;
3.Qt的安装和环境配置
Qt的官网:网址
国内清华镜像源:网址
关于开发环境配置的理解
一般来说配置开发环境需要下载:软件开发工具包(Software Development Kit,简称SDK) + 代码编辑器。 比如:配置Java开发环境需要下载JDK(Java的SDK)然后使用代码编辑器就可以编写代码。当然我们下载一些IDE(Entegrated Development Environment 集成开发环境)就可以有SDK和代码编写的功能!
编写C++代码的时候使用,VS下载即用,也不用下载SDK,它内置了这些工具!再如开箱即用的JetBrains全家桶;如果使用VSCode编辑器,然后下载插件也能开发;在搭建Qt开发环境本质上,要有C++编译器,SDK和代码编辑器,但是下载Qt SDK就有编辑器和官方提供的Qt Creator编写代码
Qt的安装
我选择下载的是5.__的版本,软件并不要求最新的!最新的软件可能会引入一些新的特性,但是也有可能会引入一些难以解决的Bug,相对于使用新特性而言,我们更希望我们使用的版本是稳定的没有隐藏的Bug! 单击下载好的安装包进行安装

安装Qt时遇到,下面的这些页面需要注意下,否则一路下一步即可!

上面如果不想注册直接断开网络即可!

上面选择安装C++编译器MinGW,当然其他的插件,可以在使用的时候安装!出现下面的界面说明Qt安装成功!

Qt的相关工具

配置环境变量
环境变量相当于进程间通信的一种简单方式!配置环境变量是将一些命令、程序等的路径配置成全局的,方便直接查找!当然有些时候不是必须的!
将下面的这个路径配置到环境变量中:D:\software\qt\5.14.0\mingw73_64\bin

4.创建简单的Qt项目

点击文件,创建文件或项目

选择传统的GUI开发方式Qt Widegets

选择一个不带中文的路径! 注意:使用中文可能会构建失败!!

使用老牌的Qt构建工具qmake,CMake也是构建工具并非Qt专属,Qbs新生的构建工具(几乎没人用);这些工具构建会用到一些元编程的技术(用代码生成代码)

QMainWindow完成的程序窗口;QWidgt表示一个控件;这里先选择QWidgt即可!

关于国际化,直接 即可!


将项目添加到版本控制系统,选择 即可
输出Hello World

点击widget.ui

通过拖拽的方式,使用Label编写!然后点击运行,跳出界面

相关文章:
初识Qt | 从安装到编写Hello World程序
文章目录 1.前端开发简单分类2.Qt的简单介绍3.Qt的安装和环境配置4.创建简单的Qt项目 1.前端开发简单分类 前端开发,这里是一个广义的概念,不单指网页开发,它的常见分类 网页开发:前端开发的主要领域,使用HTML、CSS …...
机器学习:过拟合和欠拟合的介绍与解决方法
过拟合和欠拟合的表现和解决方法。 其实除了欠拟合和过拟合,还有一种是适度拟合,适度拟合就是我们模型训练想要达到的状态,不过适度拟合这个词平时真的好少见。 过拟合 过拟合的表现 模型在训练集上的表现非常好,但是在测试集…...
变分自编码器(VAE)PyTorch Lightning 实现
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...
设备驱动开发_1
可加载模块如何工作的 主要内容 描述可加载模块优势使用模块命令效率使用和定义模块密钥和模块工作1 描述可加载模块优势 开发周期优势: 静态模块在/boot下的vmlinuz中,需要配置、编译、重启。 开发周期长。 LKM 不需要重启。 开发周期优于静态模块。 2 使用模块命令效率…...
C语言位域(Bit Fields)知识点精要解析
在C语言中,位域(Bit Field)是一种独特的数据结构特性,它允许程序员在结构体(struct)中定义成员变量,并精确指定其占用的位数。通过使用位域,我们可以更高效地利用存储空间࿰…...
离散数学——图论(笔记及思维导图)
离散数学——图论(笔记及思维导图) 目录 大纲 内容 参考 大纲 内容 参考 笔记来自【电子科大】离散数学 王丽杰...
opencv图像像素的读写操作
void QuickDemo::pixel_visit_demo(Mat & image) {int w image.cols;//宽度int h image.rows;//高度int dims image.channels();//通道数 图像为灰度dims等于一 图像为彩色时dims等于三 for (int row 0; row < h; row) {for (int col 0; col < w; col) {if…...
Java学习第十四节之冒泡排序
冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置 //2.每一次比较,都会产生出一个最大,或者最小的数字 //3.下一轮则可以少…...
第1章 计算机网络体系结构-1.1计算机网络概述
1.1.1计算机网络概念 计算机网络是将一个分散的,具有独立功能的计算机系统通过通信设备与路线连接起来,由功能完善的软件实现资源共享和信息传递的系统。(计算机网络就是一些互连的,自治的计算机系统的集合) 1.1.2计算机网络的组成 从不同角…...
蓝桥杯:C++排序
排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的,而是对数值按位划分,按照以空间换取时间的思路来排序。看起来它们的复杂度更好,但实际…...
数据结构-堆
1.容器 容器用于容纳元素集合,并对元素集合进行管理和维护. 传统意义上的管理和维护就是:增,删,改,查. 我们分析每种类型容器时,主要分析其增,删,改ÿ…...
奔跑吧小恐龙(Java)
前言 Google浏览器内含了一个小彩蛋当没有网络连接时,浏览器会弹出一个小恐龙,当我们点击它时游戏就会开始进行,大家也可以玩一下试试,网址:恐龙快跑 - 霸王龙游戏. (ur1.fun) 今天我们也可以用Java来简单的实现一下这…...
Ubuntu 1804 And Above Coredump Settings
查看 coredump 是否开启 # 查询, 0 未开启, unlimited 开启 xiaoUbuntu:/var/core$ ulimit -c 0# 开启 xiaoUbuntu:/var/core$ ulimit -c unlimited查看 coredump 保存路径 默认情况下,Ubuntu 使用 apport 服务处理 coredump 文件ÿ…...
docker 2:安装
docker 2:安装 ubuntu 安装 docker sudo apt install docker.io 把当前用户放进 docker 用户组,避免每次运行 docker 命都要使用 sudo 或者 root 权限。 sudo usermod -aG docker $USERid $USER 看到用户已加入 docker 组 …...
LeetCode Python - 19.删除链表的倒数第N个结点
目录 题目答案运行结果 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 示例 2: 输入:head [1], n 1 输出&a…...
Spring Boot 笔记 005 环境搭建
1.1 创建数据库和表(略) 2.1 创建Maven工程 2.2 补齐resource文件夹和application.yml文件 2.3 porn.xml中引入web,mybatis,mysql等依赖 2.3.1 引入springboot parent 2.3.2 删除junit 依赖--不能删,删了会报错 2.3.3 引入spring web依赖…...
【解决(几乎)任何机器学习问题】:超参数优化篇(超详细)
这篇文章相当长,您可以添加至收藏夹,以便在后续有空时候悠闲地阅读。 有了优秀的模型,就有了优化超参数以获得最佳得分模型的难题。那么,什么是超参数优化呢?假设您的机器学习项⽬有⼀个简单的流程。有⼀个数据集&…...
面试计算机网络框架八股文十问十答第七期
面试计算机网络框架八股文十问十答第七期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)UDP协议为什么不可…...
Codeforces Round 926 (Div. 2)
A. Sasha and the Beautiful Array(模拟) 思路 最大值减去最小值 #include<iostream> #include<algorithm> using namespace std; const int N 110; int a[N];int main(){int t, n;cin>>t;while(t--){cin>>n;for(int i 0; i…...
构建智慧交通平台:架构设计与实现
随着城市交通的不断发展和智能化技术的迅速进步,智慧交通平台作为提升城市交通管理效率和水平的重要手段备受关注。本文将探讨如何设计和实现智慧交通平台的系统架构,以应对日益增长的城市交通需求,并提高交通管理的智能化水平。 ### 1. 智慧…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
