Qt 的准备知识

news2024/11/25 20:38:33

在这里插入图片描述

文章目录

  • 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.coloradmin.cn/o/1449321.html

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

相关文章

SAP MM学习笔记42 - 特殊调达流程 - 受托品(寄售)

上一章讲了 外注加工的知识。 详细可以参考如下链接。 SAP MM学习笔记41 - 特殊调达流程 - 外注加工-CSDN博客 咱们继续学习特殊调达流程。 本章主要讲受托品。 1,什么是受托品 (寄售) 仕入先提供的商品,商品是放在你公司了&a…

Python爬虫——解析库安装(1)

目录 1.lxml安装2.Beautiful Soup安装3.pyquery 的安装 我创建了一个社区,欢迎大家一起学习交流。社区名称:Spider学习交流 注:该系列教程已经默认用户安装了Pycharm和Anaconda,未安装的可以参考我之前的博客有将如何安装。同时默…

C语言第二十四弹---指针(八)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 指针 1、数组和指针笔试题解析 1.1、字符数组 1.1.1、代码1: 1.1.2、代码2: 1.1.3、代码3: 1.1.4、代码4: 1…

LeetCode 每日一题 Day 62 - 75

1686. 石子游戏 VI Alice 和 Bob 轮流玩一个游戏,Alice 先手。 一堆石子里总共有 n 个石子,轮到某个玩家时,他可以 移出 一个石子并得到这个石子的价值。Alice 和 Bob 对石子价值有 不一样的的评判标准 。双方都知道对方的评判标准。 给你…

手动汉化unity编辑器,解决下载中文语言报错问题

手动汉化unity编辑器,解决下载中文语言报错问题 START 最近在下载支持微信小程序版本的编辑器时,中文语言包,一直无法下载。记录一下 手动汉化unity编辑器的方法 ,帮助和我遇到同样问题的人。 解决方案 1. 下载汉化包 https:…

建模语言CellML初步

文章目录 简介洛伦兹吸引子仿真 简介 CellML是主打计算生理学的一个编程语言,擅长处理微分方程问题,并且内置了单位系统,是细胞层次的建模工具。openCOR为其运行环境,提供了舒适的代码编辑窗口,以及一系列IDE工具&…

QEMU使用步骤

1、安装虚拟机环境:ubuntu-16.04.7-desktop-amd64.iso,下载地址:Index of /ubuntu-releases/16.04.7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 2、安装gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz到/opt目录&#xf…

漫漫数学之旅020

文章目录 经典格言数学习题古今评注名人小传 - 尼尔斯玻尔 经典格言 专家就是这样一个人,在一个很狭小的领域里犯下一切可能犯的错误。——尼尔斯玻尔(Niels Bohr) 尼尔斯玻尔,这位量子物理界的巨头,以一句幽默且充满…

【Python】高级数据类型

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

几个经典金融理论

完整EA:Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 一、预期效用理论 预期效用理论是描述人们在做出决策时如何考虑风险和不确定性的一种理论。该理论最初由经济学家冯诺伊曼(John von Neumann)和奥斯卡摩根斯坦恩(Oskar…

图像配准之HomographyNet

文章名称:Deep Image Homography Estimation,论文地址:https://arxiv.org/pdf/1606.03798.pdf,代码地址:GitHub - mazenmel/Deep-homography-estimation-Pytorch: Deep homography network with Pytorch 1、背景介绍 …

maven创建webapp+Freemarker组件的实现

下载安装配置maven Maven官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供Maven最新版正式版官方版绿色版下载,Maven安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://www.123pan.com/s/9QRqVv-TcUY.html链接为3.6.2-3.6.3的版本 下载解…

【C++】类和对象(四)

前言:在类和对象中,我们走过了十分漫长的道路,今天我们将进一步学习类和对象,类和对象这块荆棘地很长,各位一起加油呀。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量&a…

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

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

【碎片知识点】安装Linux系统 VMware与kali

天命:VMware就是可以运行操作系统的载体,kali就是Linux的其中一个分支 天命:Linux有两个分支版本:centos与ubuntu,kali底层就是ubuntu(所有Linux用起来都差不多,没啥区别) 天命&…

linux系统zabbix自动发现主机

自动发现主机 新的主机浏览器配置创建发现规则创建发现主机后动作 新的主机 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm# yum clean allyum install zabbix-agentvim /etc/zabbix/zabbix_agentd.conf Server10.12.153.1…

C语言:内存分配---栈区、堆区、全局区、常量区和代码区

一、C语言内存分区 C语言内存分区示意图如下: 1. 栈区 栈区介绍 栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。栈区按内存…

微服务中台架构的设计与实现

本文将探讨微服务中台架构的设计与实现,介绍如何通过微服务的方式进行系统拆分和组合,构建灵活、可扩展且易于维护的中台架构,以加速企业的数字化转型和提升竞争力。 ## 1. 引言 随着企业规模的不断扩大和业务的日益复杂化,传统…

山西电力市场日前价格预测【2024-02-12】

日前价格预测 预测说明: 如上图所示,预测明日(2024-02-12)山西电力市场全天平均日前电价为127.42元/MWh。其中,最高日前电价为369.24元/MWh,预计出现在18:45。最低日前电价为0.00元/MWh,预计出…

库函数strlen的实现

目录 一、原理二、思路三、实现 一、原理 库函数strlen的功能是求字符串长度,统计的是字符串中 \0 之前的字符的个数。 函数原型如下: size_t strlen ( const char * str );二、思路 参数str接收⼀个字符串的起始地址,然后开始统计字符串中…