Qt 的准备知识

在这里插入图片描述

文章目录

  • 1. Qt 背景介绍
  • 2. 搭建 Qt 开发环境
  • 3. 认识 Qt Creator
    • 3.1 main.cpp
    • 3.2 widget.h
    • 3.3 widget.cpp
    • 3.4 Forms
    • 3.5 .pro文件

1. Qt 背景介绍

Qt 是⼀个 跨平台的 C++ 图形用户界面应用程序框架 。它为应用程序开发者提供了建立艺术级图形界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt 为开发者提供了⼀种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用 C++ 语⾔进行高级开发。

图形用户界面 :指采用图形⽅式显示的计算机操作用户界面,是计算机与其使用者之间的对话接⼝,是计算机系统的重要组成部分。

Qt 的应用场景:
在这里插入图片描述
目前最新的版本是 Qt 6,但是相对来说 Qt 6 和 Qt 5 之间的核心功能区别不大,我们这里仍然使用 Qt 5 版本。

Qt 的优点:
在这里插入图片描述
这里的内存回收机制是半自动的垃圾回收,能够简化内存释放,也可能尽可能小的影响程序的运行效率。

2. 搭建 Qt 开发环境

Qt ⽀持多种开发⼯具,其中比较常⽤的开发⼯具有:Qt Creator、Visual Studio、Eclipse。我们这里主要使用Qt Creator。

Qt SDK 的下载和安装:
Qt 下载官⽹
在这里插入图片描述
安装过程中我们需要选择部分组件;说明:其他未安装的组件在使用时可以另行添加。
在这里插入图片描述
在这里插入图片描述
安装好QT之后,我们需要配置一下环境变量。
在这里插入图片描述
我们将这个路径配置到我们的PATH里。
在这里插入图片描述
在这里插入图片描述
这些都是我们安装好的(我这里安装的是5.14.0版本):
在这里插入图片描述
第一个Assistant是QT的离线文档,可以去帮助我们去搜索。

第二个Designer是一个图形化的设计界面的工具,可以通过拖拽控件来快速生产界面。后面会经常使用,但是我们是通过QT Creator去使用。

第三个Linguist是对国际化进行支持,允许你单独创建一个语言配置文件,把界面上需要用到的各种文字,都配置到文件中,并且在文件中提前的把各种语言的翻译都配置进去。就可以起到"一键切换语言"的效果。

第四个就是QT的命令行,可以使用一些QT SDK命令。第五个就是QT的集成开发环境了。

3. 认识 Qt Creator

从 开始菜单 或者 快捷方式 打开 Qt Creator 集成开发环境,启动之后看到类似下⾯的界面:
在这里插入图片描述
然后我们点开文件,新建文件和项目。
在这里插入图片描述
我们这里选择第一个,它是开发一个GUI的模板。
在这里插入图片描述
这一步是构建系统,通过QT写的程序,涉及到一系列的 “元编程” 技术(通过代码来生成代码)。
在这里插入图片描述
这里的Base class的意思是:使用QT Creator创建项目,会自动的生成一些代码出来,生成的代码中就有一个类。此处就是要选择这个自动生成的类的父类是谁。
在这里插入图片描述
QMainWindow表示完整的应用程序窗口(包含菜单栏,工具栏,状态栏等等)。
QWidget表示一个控件(窗口上的一个具体元素,比如输入框,按钮,下拉框等等)。
QDialog表示一个对话框。

我们新手先使用QWidget。
在这里插入图片描述
Class name就是自动生成的类,Base class就是这个父类。下面两个生成的文件是和类名关联的,但不是强制的。
在这里插入图片描述
勾选上这个Generate form可以更加方便我们去构建图形化界面。
在这里插入图片描述
这个是和上面国际化相关的,我们在这里先不考虑。
在这里插入图片描述
这里是选择一下基于哪个编译器的QT SDK来构建后续代码。
在这里插入图片描述
这样我们就创建好了。运行情况如下:
在这里插入图片描述

3.1 main.cpp

这个自动生成的main函数,做了哪些事情呢
在这里插入图片描述

3.2 widget.h

下面我们来看一下Widget这个类:
在这里插入图片描述
首先看一下这个类的声明:
在这里插入图片描述

3.3 widget.cpp

在这里插入图片描述

3.4 Forms

在这里插入图片描述
当我们点击widget.ui时,就是弹出设计页(Qt Designer)。
在这里插入图片描述
此时我们点击左边的"编辑"按钮:
在这里插入图片描述
此时显示的内容就是.ui文件的本体了。这个内容会被我们的Qt Designer当作图形化界面。这里面的格式称为xml格式。它和 html 格式非常相似,都是使用才对的标签来表示数据。但是,html的标签是固定的,每个标签的含义是由专门的委员会决定的,所有的浏览器都按照这个规则来解释。而 xml 里的标签,什么标签,什么含义,都由程序员自己定义。

Qt 中使用 xml 文件就是去描述程序的界面是啥样的,进一步qmake会调用相关的工具,依据这个 xml 文件生成一些C++代码,从而将完整的界面构造出来

3.5 .pro文件

在这里插入图片描述
.pro类似之前 Linux 中学过的Makefile文件。qmake搭配.pro起到的作用就和Makefile是类似的。Qt Creator把这个过程中编译的细节都封装好了,不需要过多关注,只需要点击运行按钮就可以直接编译运行了。

上面看到的.h .cpp .pro .ui都是源代码,如果编译运行Qt 项目,构建过程中还会生成一些中间文件
在这里插入图片描述
在这里插入图片描述
下面我们来看一下这个.h文件:
在这里插入图片描述

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

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

相关文章

电脑设置静态地址有啥用

随着信息技术的迅猛发展,计算机网络已成为现代社会不可或缺的基础设施。在网络世界中,每一台计算机都需要一个独特的标识来与其他计算机进行通信,这个标识就是IP地址。其中,静态IP地址作为一种固定的网络配置方式,在特…

C语言-----习题

1.通过这个例题,我们可以知道*p.a是无法打印99的,因为.的优先级比解引用*高; ​ struct S {int a;int b; }; int main() {struct S a, * p &a;//可以分为两部分理解//struct S a;//struct S *p &a;a.a 99;printf("%d\n"…

Docker 在window 2024版笔记 下载 安装 操作 配置

---Docker 前言--- Docker windows版官方版是一款专业开源的应用容器引擎,可以加快用户构建、共享和运行现代应用程序的速度,支持运行Linux和Windows Docker容器。 Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互…

2024年华为OD机试真题-密码输入检测-Java-OD统一考试(C卷)

题目描述: 给定用户密码输入流input,输入流中字符<表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密码安全要求。 密码安全要求如下: 1.密码长度>=8; 2.密码至少需要包含1个大写字母; 3.密码至少需要包含1个小…

关于Windows Media Player的一些知识,看这篇文章就差不多了

你知道如何在电脑上打开Windows Media Player吗?如果它不是你电脑上默认的媒体播放器,你知道如何将其设为默认吗?此外,如果你找不到它,你知道怎么把它找回来吗?这篇文章将向你展示你想要了解的所有信息。 在这篇文章中,我们将向你展示以下信息: 如何打开Windows Medi…

从傅立叶变换到奥运五环

傅立叶变换的本质 离散傅立叶变换的本质就是用一系列的正弦&#xff08;或者余弦&#xff09;函数的和来拟合一个周期函数f(t)。公式如下&#xff1a; (1) 其中T是f(t)的周期&#xff0c;即f(tT)f(t)对任意t成立。和的周期是。换句话说&#xff0c;后两者的频率是f(t)的频率的…

推荐10个最受欢迎的 Vue.js UI 库

在2024年,随着Vue.js的不断普及和发展,这个轻量级、易于学习的JavaScript框架在前端开发者中的受欢迎程度日益上升。Vue.js之所以受到青睐,很大一部分原因是其庞大的生态系统,特别是众多的UI库,这些库提供了预先构建的组件和工具,帮助开发者快速高效地构建出既美观又响应…

Python算法深度探索:从基础到进阶

引言 本文将引导您从Python的基础算法出发&#xff0c;逐步深入到更复杂的算法领域。我们将探讨数组操作、图算法以及机器学习中的常用算法&#xff0c;并通过实例和代码展示它们在实际应用中的价值。 1. 基础算法&#xff1a;数组操作 数组操作是算法实现中非常基础且重要的一…

Editing While Playing 使用 Easyx 开发的 RPG 地图编辑器 tilemap eaitor

AWSD移动画布 鼠标右键长按拖拽 鼠标左键长按绘制 可以边拖拽边移动画布边绘制。 F1 导出 DLC F2 导入DLC author: 民用级脑的研发记录 1309602336qq.com 开发环境&#xff1a; 内置 easyx 的 devc 5.11 或者 VS 2022 TDM GCC 4.9.2 64-bit c11及以上都可运行 windows 环境运行…

算法-16-并查集

并查集简介 并查集&#xff1a;一开始&#xff0c;把a&#xff0c;b&#xff0c;c放入并查集&#xff0c;a自己一个集合&#xff0c;b自己一个&#xff0c;c自己一个 提供的方法 1.boolean isSameSet(a,b)&#xff0c;判断ab是否在同一个集合 2.void union(a,b),把a所…

Hadoop-Yarn-ResourceManagerHA

在这里先给屏幕面前的你送上祝福&#xff0c;祝你在未来一年&#xff1a;技术步步高升、薪资节节攀升&#xff0c;身体健健康康&#xff0c;家庭和和美美。 一、介绍 在Hadoop2.4之前&#xff0c;ResourceManager是YARN集群中的单点故障 ResourceManager HA是通过 Active/St…

【深度学习】S2 数学基础 P3 微积分(上)导数与微分

目录 圆与微积分导数与微分导数的含义数学定义常用函数微分常用微分法则Python 实现 圆与微积分 公元前 2500 年&#xff0c;古希腊数学家阿基米德通过一种名为 “逼近法” 的技巧来估算圆的面积。他采用一个有奇数边的正多边形来外切圆&#xff0c;并用一个有偶数边的正多边形…

【经验】STM32的一些细节

这两天 碰到的奇葩问题是 STM32定时器同步的问题。 我的设计本意是&#xff1a;使用定时器T3以100us的周期来定时发送命令给 FPGA。由于编码器出结果的最长时间为51us。因此&#xff0c;希望PWM中断要滞后于T3 约60us 。 调试过程&#xff1a;分别在T3和PWM中断中置IO1&#…

163基于matlab的不同目标函数的盲源信号分离基于负熵的

基于matlab的不同目标函数的盲源信号分离基于负熵的&#xff1b;基于负熵的改进算法&#xff1b; 基于峭度的&#xff1b;基于互信息的&#xff1b;基于非线性PCA的。输出解混前后信号结果。程序已调通&#xff0c;可直接运行。 163 负熵、峭度、互信息、PCA 信号处理 (xiaohon…

牛客——递归实现组合型枚举(枚举,dfs)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 从 1~n 这 n 个整数中随机选出 m 个&#xff0c;输出所有可能的选择方案。n>0n \gt 0n>0, 0≤m≤n0 \leq m \leq n0≤m≤n, n(n−m)≤25n(n-m)\leq 25n(n−m)≤25。 输入描述…

多种C语言结构体赋值方法介绍

C语言中&#xff0c;结构体&#xff08;structure&#xff09;是一种用户自定义的复合数据类型&#xff0c;它允许以一种有组织的方式存储不同类型的数据。结构体的赋值是对结构体成员进行赋值的过程。在C语言中&#xff0c;有多种不同的方法可以对结构体进行赋值&#xff0c;下…

LeetCode Python - 17.电话号码的字母组合

目录 题目答案运行结果 题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits…

HGAME 2024 WEEK2 Web方向题解 全

---------【WEEK-2】--------- What the cow say? 题目描述&#xff1a;the cow want to tell you something 注意title&#xff0c;Python的flask漏洞可多呢 版本310 先测一下SSTI 正常情况下 SSTI测试 变量渲染测试&#xff0c;被waf了&#xff0c;说明方向对了 单单过滤…

企业人力资源大数据分析解决方案

一、 背景痛点 随着企业发展和市场竞争的加剧,传统的人力资源管理模式已经无法满足企业的需求。而大数据技术的出现,为企业提供了新的解决方案,能够更好地应对市场变化和人力资源挑战。 二、基本人力分析应用 整个人力资源体系是承接集团战略的重要部分,通过对人力资源战…

《小强升职记:时间管理故事书》阅读笔记

目录 前言 一、你的时间都去哪儿了 1.1 你真的很忙吗 1.2 如何记录和分析时间日志 1.3 如何找到自己的价值观 二、无压工作法 2.1 传说中的“四象限法则 2.2 衣柜整理法 三、行动时遇到问题怎么办&#xff1f; 3.1 臣服与拖延 3.2 如何做到要事第一&#xff1f; 3.…