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.hqwc.cn/news/469662.html

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

相关文章

Linux日志管理服务 rsyslogd

文章目录 1. 基本介绍2. 系统常用的日志3. 日志管理服务 rsyslogd 1. 基本介绍 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。日志对于安全来说…

计算机网络——11EMail

EMail 电子邮件(EMail) 3个主要组成部分 用户代理邮件服务器简单邮件传输协议:SMTP 用户代理 又名“邮件阅读器”撰写、编辑和阅读邮件输入和输出邮件保存在服务器上 邮件服务器 邮箱中管理和维护发送给用户的邮件输出报文队列保持待发…

实现表达式语言

实现表达式语言 考虑使用大量Scriplet代码嵌入Java代码的JSP页面。过度使用Scriptlet代码使JSP页面变得混乱。因此。开发人员难以阅读和调试页面。另外,网页设计师在编辑表示代码时也会遇到问题。为了解决此类问题,开发无脚本的JSP页面受到推崇。 无脚本的代码使JSP页面易于…

《Think in Java》

《Think in Java》 第一章:对象导论 1.1 抽象过程 1)万物皆对象。 2)程序是对象的集合,它们通过发送消息来告诉彼此所要做的。 3)每个对象都有其他对象构成的存储,一个对象可以复用其他对象,从而…

微服务—ES数据同步

目录 数据同步 问题分析 方案1. 同步调用 方案2. 异步通知 方案3. 监听binlog​编辑 各方案对比 案例——利用MQ实现数据同步 步骤1. 导入hotel-admin项目 步骤2. 声明交换机、队列 步骤3. 发送MQ消息 步骤4. 接收MQ消息 步骤5. 测试同步功能 数据同步 elasticsea…

nodejs+vue+ElementUi银行贷款业务管理系统

银行贷款管理系统的主要实现功能包括:管理员:首页、个人中心、用户管理、银行管理、贷款信息管理、贷款申请管理、金额发布管理、还款信息管理、通知信息管理,用户:首页、个人中心、贷款信息管理、贷款申请管理、金额发布管理、还…

MongoDB之概述、命令

基础知识 是什么 概念 分布式文件存储数据库,提供高可用、可扩展、易部署的数据存储解决方案。 结构 BSON存储类型 类似JSON的一种二进制存储格式。相比于JSON,提供更丰富的类型支持。 优点是灵活,缺点是空间利用率不佳。 类型说明解释…

Linux多线程[二]

引入知识 进程在线程内部执行是OS的系统调度单位。 内核中针对地址空间,有一种特殊的结构,VM_area_struct。这个用来控制虚拟内存中每个malloc等申请的空间,来区别每个malloc的是对应的堆区哪一段。OS可以做到资源的精细度划分。 对于磁盘…

视觉slam十四讲学习笔记(四)相机与图像

理解理解针孔相机的模型、内参与径向畸变参数。理解一个空间点是如何投影到相机成像平面的。掌握OpenCV的图像存储与表达方式。学会基本的摄像头标定方法。 目录 前言 一、相机模型 1 针孔相机模型 2 畸变 单目相机的成像过程 3 双目相机模型 4 RGB-D 相机模型 二、图像…

算法学习——LeetCode力扣回溯篇1

算法学习——LeetCode力扣回溯篇1 77. 组合 77. 组合 - 力扣(LeetCode) 描述 任何顺序 返回答案。 示例 示例 1: 输入:n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 示例 2: 输…

串行通信的艺术:深入解析UART与奇偶校验

发送数据位是电流传输吗? 在UART(Universal Asynchronous Receiver/Transmitter)通信中,发送数据位不直接以电流的形式传输。而是通过改变电压水平或者光信号(在光纤通信中)来表示不同的数据位&#xff08…

UART通信中的奇偶校验

UART通信中的奇偶校验:提升数据传输可靠性的简单方法 在微控制器(MCU)和各种电子设备之间的数据通信领域,UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)协议是一种广泛…