认识QT以及QT的环境搭建
认识QT
什么是QT?
认识客户端
现在我们所说的客户端开发其实大致分为三种:
1.网页前端开发。
2.桌面应用开发(电脑的应用层序)
3.移动应用开发。
而我们的QT的主战场就是在桌面开发客户端的,虽然现在的QT已经支持了在安卓上进行客户端开发,但是目前很少有商业公司这么做。
同时,我们的客户端和用户交互的界面又可以分为两种:
1.命令行式的/终端界面 (就是那种黑框框) 比如 gcc,gdb这种,这种客户端称为TUI。
TUI一般是给程序员用的。
2.带有图形化界面的客户端,这种就不必多解释了,这种就称为GUI。
而我们的QT是编写GUI的其中一种解决方案,并且非常流行。
QT支持的平台
Windows ‒ XP、Vista、Win7、Win8、Win2008、Win10
QT之所以能这么火,这么流行,其中一个很大的原因就是QT能跨平台,一套代码就能在很多的平台上运行。
QT的优点
QT的应用场景
不过,QT最主要的战场还是桌面应用程序。
搭建QT开发环境
QT开发环境的概述
Qt ⽀持多种开发⼯具,其中⽐较常⽤的开发⼯具有:Qt Creator、Visual Studio、Eclipse.
其中:
Qt Creator是官网提供的开发QT的IDE,这种对新手也比较友好,后续我们以Qt Creator演示为主
Visual Studio开发QT功能强大,但是前期的配置比较麻烦,作为新手还是不太推荐。
Eclipse现在已经停止维护了,不如前两种。
关于QT的开发环境需要三个部分:
1.一个C++编译器,这里的编译器是指gcc这种,不是指Visual Studio这样的IDE,编译器只是IDE调用的一部分。
2.QT SDK,SDK就是指软件开发工具包。
3.需要一个QT的集成开发环境(IDE)。
这里我们就推荐了 Qt Creator了,并且在官网上下载,可以把前面两个都搞定。
Qt Creator的下载安装
首先进入QT的官网
右上角
点击下载
选择开源版
点击后,往下翻找到下载按钮
自从QT5.14版本后,QT的安装就变成了在线安装,那么安装的时候就需要我们注册账号,登录后才能安装
下好后运行
登录后进行下一步
然后把两个勾都选上,继续下一步
接着到后面这一步
建议选择第二个选项,然后下一步,选择安装目录
左下角的选项依旧推荐去掉。
接着下一步
这里我们选择QT 6.5.3,注意,这里的MinGW 11.2.0就是我们的C++编译器,这里一定要选上。
右边选中间这个即可。
然后再下一步就是安装了,然后等待就行了。
以上要注意,安装路径不能出现中文。
简单创建第一个QT程序
QT Creator下好后,打开
点击文件,创建一个新文件
然后选择第一个 QT Widgets Application
然后选择路径
这里的路径同样不能是中文,并且不要有空格。
接下来选额qmake
接着下一步选择第二个
语言就默认无即可,这里是为了让QT语言国际化用的
最后就为我们的QT程序选择编译器了
我这里有两个,我们选择MinGW即可
然后就能看到我们的main函数了
运行一下:
结果:
就是一个白框框。
至此,一个简单的QT程序就运行成功了。
环境变量的配置
虽然这里我们可以直接在QT Creator中运行这个程序,但是我们也想在外面运行这个QT的.exe程序,如果没有配置环境变量,那么操作系统就无法找到对应的.dll动态库,程序就运行不了。
我们对main.cpp那里右键:
这里有一个 在Explorer中显示的选项,点击:
可以看到它所在的目录,点击build文件夹:
直到找到debug文件夹
点击debug
发现这里就是我们之前生成的.exe文件了,点击就能直接运行了:
但是如果没有配置环境变量的话,就会报错。
接下来就是配置的步骤:
首先可以先找到QT Creator所在的目录
然后我们发现这里是QT Creator的bin目录
我们要找的东西不在这里,我们选择这里的上上一级目录:
直到Tools目录中:
这里就看到了 mingw...这个目录,进去找到bin目录
找到bin目录后,将这里的目录进行复制。
然后打开本地的高级系统设置
点击环境变量:
找到路径Path这里,选择编辑
然后把刚刚复制的目录新增进去即可。
另外在配置的时候,我们还发现了有一个系统的环境变量,我们两边都配置一下都没有事,系统那边配置了后,所有用户都能看到,而我们的普通用户配置了后,只有普通用户能看到而已。
新增完后记得要保存,至此环境变量就配置好了。
一些补充内容
关于 mingw
另外在安装了SDK后,还有一些其它的工具
创建QT程序时的选项:
关于qmake
自动生成类的选择:
对于基类的选择,⽬前有三种基类:
关于formfile
QT中创建图形化界面的程序,有两种方式:
1.直接通过C++代码的方式创建界面
2.通过form file以图形化的方式来生成界面。
关于程序的代码解释:
当我们双击界面下的.ui文件后
就会自动给我们弹到设计模式,我们可以通过拖拽的方式给我们的框框加内容。
在点回.ui文件时,就会看到
这是一个xml格式的标签语言。
跟应用层协议有点相似。
再看看.pro文件
其实就有点像Makefile。
但是编译QT程序其实还是会用到makefile的
相关文章:
认识QT以及QT的环境搭建
认识QT 什么是QT? Qt 是⼀个 跨平台的 C 图形⽤⼾界⾯应⽤程序框架 。 认识客户端 现在我们所说的客户端开发其实大致分为三种: 1.网页前端开发。 2.桌面应用开发(电脑的应用层序) 3.移动应用开发。 而我们的QT的主战场就是在…...
Rollup failed to resolve import “destr“ from ***/node_modules/pinia-plugin-pers
在使用uni-appvuu3piniapinia-plugin-persistedstate开发中, 使用pinia-plugin-persistedstate 一直在报错,其实代码也是比较简单的, import { createPinia } from pinia // 创建 pinia 实例 const pinia createPinia(); import piniaPlugi…...
Python小白学习教程从入门到入坑------第三十课 文件定位操作(语法进阶)
一、文件指针 python中严格来说没有指针这个说法,但有指针这个用法的体现。指针概念常用于c语言、c语言中 在Python的文件操作中,文件指针(也称为文件游标或文件句柄的位置)是一个内部标记,它指示了当前文件操作的读…...
人工智能、机器学习与深度学习:层层递进的技术解读
引言 在当今科技快速发展的时代,人工智能(AI)已经成为一个热门话题,几乎渗透到了我们生活的方方面面。从智能手机的语音助手,到自动驾驶汽车,再到医疗诊断中的图像识别,人工智能的应用正在改变我…...
Code Inspector——页面开发提效的神器
写在前面 优点: 开发提效:点击页面上的 DOM 元素,它能自动打开 IDE 并将光标定位至 DOM 的源代码位置,大幅提升开发体验和效率简单易用:对源代码无任何侵入,只需要在打包工具中引入就能够生效,…...
如何定制RockyLinux ISO
目标 基于Rocky9官方ISO做定制,构建自己的ISO 可以添加非官方预装的RPM包实现Kickstart自动化安装, 完成分区等操作ISO安装后,可以执行自定义脚本,比如安装你手动添加的RPM包 Rocky9 官方ISO内容分析 挂载Rocky9 ISO,得到如下…...
python基于深度学习的音乐推荐方法研究系统
需求设计 一款好的音乐推荐系统其目的是为用户进行合理的音乐推荐,普通的用户在登录到系统之后,能够通过搜索的方式获取与输入内容相关的音乐推荐,而以管理员登录到系统之后,则可以进行徐昂管的数据管理等内容操作。此次的需求主…...
机器学习系列----介绍前馈神经网络和卷积神经网络 (CNN)
前言 在深度学习领域,神经网络是一种模拟人脑神经元结构和功能的数学模型。它通过大量的层次结构和参数调整来实现模式识别、分类、回归等任务。常见的神经网络结构有前馈神经网络(Feedforward Neural Networks,简称 FNN)和卷积神…...
vue.js组件和传值以及微信小程序组件和传值
微信小程序组件以及vue.js组件 一.微信小程序组件引用1.创建组件Component2.页面组件引用3.组件传值3.1 父视图传值到子组件 (父---->子)3.2 子组件传值给父组件 (子---->父)3.3 父组件方法传递到子组件 4. 界面之间的传值4.1 正向传值4.2 反向传值…...
c语言编程题(函数)
1编写函数将一个仅包含整数(可能为负)的字符串转换为对应的整数 方法一使用标准库函数 atoi atoi 函数是C语言标准库中的一个函数,用于将字符串转换为整数。 代码: #include <stdio.h> #include <stdlib.h> // 包含…...
华为eNSP:QinQ
一、什么是QinQ? QinQ是一种网络技术,全称为"Quantum Insertion",也被称为"Q-in-Q"、"Double Tagging"或"VLAN stacking"。它是一种在现有的VLAN(Virtual Local Area Network࿰…...
JAVA基础-多线程线程池
文章目录 1. 多线程1.1什么是多线程(1)并发和并行(2)进程和线程 1.2多线程的实现方式1.2.1 方式一:继承Thread类1.2.2 方式二:实现Runnable接口1.2.3方式三: 实现Callable接口 1.3 常见的成员方法1.3.1 设置…...
HarmonyOS 沉浸式状态实现的多种方式
1. HarmonyOS 沉浸式状态实现的多种方式 HarmonyOS 沉浸式状态实现的多种方式 1.1. 方法一 1.1.1. 实现讲解 (1)首先设置setWindowLayoutFullScreen(true)(设置全屏布局)。 布局将从屏幕最顶部开始到最底部结束,…...
Python3.11.9下载和安装
Python3.11.9下载和安装 1、下载 下载地址:https://www.python.org/downloads/windows/ 选择版本下载,例如:Python 3.11.9 - April 2, 2024 2、安装 双击exe安装 3、配置环境变量 pathD:\Program Files\python3.11.9...
简简单单的UDP
前言 上一篇了解了TCP的三次握手过程,目的、以及如何保证可靠性、序列号与ACK的作用,最后离开的时候四次挥手的内容,这还只是TCP内容中的冰山一角,是不是觉得TCP这个协议非常复杂,这一篇我们来了解下传输层另外一个协…...
减少 try...catch,定义全局统一异常处理器!
前言 软件开发springboot项目过程中,不可避免的需要处理各种异常,spring mvc 架构中各层会出现大量的try {...} catch {...} finally {...}代码块,不仅有大量的冗余代码,而且还影响代码的可读性。这样就需要定义个全局统一异常处理器&#x…...
多点支撑:滚珠导轨的均匀分布优势!
滚珠导轨的滚珠稳定性可以有效保持滚珠导轨的稳定运行,减少滚珠脱落的风险,确保设备的长期稳定性和可靠性。事实上,滚珠导轨的滚珠稳定性主要依赖于以下几个方面: 1、精密的制造工艺:滚珠导轨的导轨和滑块通常采用高精…...
电气火灾探测器在商场火灾隐患监测和火灾预防中的应用
徐悦 安科瑞电气股份有限公司 近年来,全国火灾事故频发,尤其是在大型商场等公共场所,火灾造成了巨大的人员伤亡和财产损失。以南京金盛百货中央门店火灾为例,该起事故暴露了商场在电气安全、消防管理方面的重大隐患,…...
速盾:如何有效防止服务器遭受攻击?
服务器攻击是网络安全中常见的问题,但我们可以采取一系列的措施来有效防止服务器的遭受攻击。以下是一些常见的防御措施: 更新和维护服务器软件:及时更新操作系统、应用程序以及安全补丁,以确保最新版本的软件没有已知的漏洞。同时…...
【今日更新】使用Python辅助处理WebGIS
Linux发行版本: Debian GNU/Linux 12 (bookworm)操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36Python版本: 3.11.2 1.使用Python处理MapServer配置文件Mapfile 创建、分析、修改和格式化的python库 MapServer Mapfiles。 Python 2和3 兼容 纯Python-无MapServer依…...
Linux 消息队列
在Linux中,线程间消息队列可以通过使用System V消息队列或POSIX消息队列来实现。 使用System V消息队列: System V消息队列是一种基于IPC(Inter-process Communication,进程间通信)的通信机制,可以用于进程…...
十大经典排序算法-冒泡算法详解介绍
1、十大经典排序算法 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要…...
delphi 编译多语言工程 error RC2104 : undefined keyword or key name:
Delphi 10.3中建立多语言工程,编译时出现错误:error RC2104 : undefined keyword or key name: 出现错误的的文件是.rc文件,出现错误的位置是 System_JSONConsts_SInvalidJavascriptQuote, L"Invalid JavaScript string quote character…...
[python] 如何debug python脚本中C++后端的core dump
文章目录 Debug过程Reference Debug过程 另外:对于core dump: gdb版本是>7,gdb从版本7开始支持对Python的debug。确保你的系统中安装了 GDB 调试器和对应版本的 Python 调试信息包(例如 python-dbg 或 python-debuginfo)。 #…...
Ecmascript(ES)标准
Ecmascript(ES)标准 ECMAScript(通常简称为 ES)是一种标准化的脚本语言,由 Ecma International 通过 ECMA-262 标准定义。ECMAScript 是 JavaScript 的规范版本,几乎所有的现代浏览器和许多服务器端环境&a…...
易泊车牌识别相机:4S 店的智能之选
在当今数字化时代,科技的进步不断为各个行业带来更高效、便捷的解决方案。对于 4S 店来说,易泊车牌识别相机的出现,无疑为其运营管理带来了全新的变革。 一、易泊车牌识别相机的强大功能 易泊车牌识别相机以其卓越的性能和精准的识别能力&…...
Webpack 深度解析与实战指南
文章目录 前言一、安装于基本配置安装Webpack 和 Webpack CLI创建基本配置文件 二、加载器常见的加载器配置加载器 三、插件(Plugins)常用的插件配置插件 四、性能优化缓存代码分割Tree Shaking压缩 五、开发服务器安装服务器配置服务器启动服务器生产环…...
【RabbitMQ】06-消费者的可靠性
1. 消费者确认机制 没有ack,mq就会一直保留消息。 spring:rabbitmq:listener:simple:acknowledge-mode: auto # 自动ack2. 失败重试机制 当消费者出现异常后,消息会不断requeue(重入队)到队列,再重新发送给消费者。…...
【K8S系列】如何监控集群CPU使用率并设置告警的分析与详细解决方案
监控 Kubernetes 集群的 CPU 使用率并设置告警是确保集群健康和性能的关键。以下是几种常见的方案,每种方案的具体步骤都进行了详细说明。 方案 1: 使用 Prometheus 和 Grafana 1. 安装 Prometheus 和 Grafana 1.1 使用 Helm 安装 Prometheus 添加 Helm 仓库: hel…...
解线性方程组(二)
实验类型:●验证性实验 ○综合性实验 ○设计性实验 实验目的:进一步熟练掌握用Jacobi迭代法和Gauss-Seidel法解线性方程组的算法,提高编程能力和解算线性方程组问题的实践技能。 实验内容: 1)取初值性x(0)(0,0,0,0)T, 精度要求ε…...
手机投资网站/广东网络seo推广公司
我感觉我是一个比较有发言权的人吧,我在测试行业爬模滚打5年,从点点点的功能测试到现在成为测试开发工程师,工资也翻了几倍; 个人觉得,测试的前景并不差,只要自己肯努力;我刚出来的时候是在鹅厂…...
有单独做网站维护的必要吗/磁力搜索器下载
1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 方案1:可以估计每个文件安的大小为50G64320G,远远大于内存限制的4G。所以不可能将其完全加载…...
嘉善县住房和城乡规划建设局网站/竞价托管推广多少钱
https://blog.csdn.net/u012867916/article/details/77430393...
网站开发站点的文件夹/网络营销的方法有哪些?
如何选择合适的图表类型和使用场景 以QUICK BI 来介绍常见基本图形以及应用场景...
如何用axure做网站/网站推广服务外包
近期有部分网友问我有关多条外线路由备份和负载均稀的问题,由于时间关系,我简单的写了一下配置....下面是以双外线路由备份为例的..多外线路无非就是在原来的基础上增加相应的策略路由....如有遗漏,请指教.... 前提是在各接口等基础配置完毕的情况下. (1)可以针对两条线路先加两…...
网络公司网站建设彩铃样本/优化大师win10
Better to Follow, Follow to Be Better: Towards Precise Supervision of Feature Super-Resolution for Small Object Detection 摘要:具体实现:超分辨率的目标提取器:超分辨率特征生成器:实验结果:摘要: 尽管最近基于提案的CNN模型在目标检测方面取得了成功,但由于小…...