Qt的入门

Qt的入门

  • 1.Qt的配置
  • 2.介绍Qt的使用
    • 2.1 Qt 5.14.2
    • 2.2 Linguist 5.14.2
    • 2.3Designer 5.14.2
    • 2.4 Assistant 5.14.2
    • 2.5 Qt Creator 4.11.1
  • 3.创建第一个项目
    • 3.1点击文件来新建一个新的文件或项目
    • 3.2选择项目路径和名称
    • 3.3选择构建工具
    • 3.4类信息
    • 3.5翻译文件
    • 3.6选择编译器
    • 3.7项目管理
    • 3.8运行
  • 4.项目细节说明
    • 4.1 mian.cpp
    • 4.2 widget.h
    • 4.3 widget.cpp
    • 4.4 widget.ui
    • 4.5 项目名.pro
    • 4.6更详细文件

🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【Qt的学习】
📝📝本篇内容:Qt的配置;介绍Qt的使用;创建第一个项目;项目细节说明
⬆⬆⬆⬆上一篇:Linux高级IO
💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.Qt的配置

在我们安装完Qt软件后,我们先需要配置一下环境变量,来让我们的Qt Creator工具能够找到Qt SDK中提供的exe以及让Qt程序运行的时候,能够找到对应的.dll动态库。

1.先找到安装Qt的文件夹,在其中找到对应的最里面的bin文件夹,并复制路径

在这里插入图片描述

2.找到电脑对应的环境变量

在这里插入图片描述

3.找到系统变量中的Path,然后进行新建,添加刚刚复制的路径,然后一直点确定就可以了

在这里插入图片描述

2.介绍Qt的使用

在这里插入图片描述
这些工具程序能够在电脑的开始页面找到,它们都是Qt SDK自带的一些工具程序

2.1 Qt 5.14.2

在这里插入图片描述
它点进去就是一个黑框框,要使用命令行,可以使用它来编译文件什么的

2.2 Linguist 5.14.2

在这里插入图片描述
Qt语言家是用来进行国际化支持的,有的时候写的程序需要和国际接轨,可以创建一个语言配置文件,把界面上需要用到的各种文字,都配置到文件中,并且在文件中提前的把各种语言的翻译都配置进去

2.3Designer 5.14.2

在这里插入图片描述
图形化的设计界面的工具,可以通过拖拽控件的方式来快速生成界面,通过搭配Qt Creator来使用

2.4 Assistant 5.14.2

在这里插入图片描述
Qt自带的离线版本的官方文档

2.5 Qt Creator 4.11.1

在这里插入图片描述
Qt的集成开发工具

3.创建第一个项目

3.1点击文件来新建一个新的文件或项目

在这里插入图片描述
我们传统的开发GUI的方式叫做Qt Widget,Qt他不仅仅支持C++,也支持Python和Java,下面的Qt Quick是新搞出来的一套开发GUI的方式

3.2选择项目路径和名称

在这里插入图片描述

3.3选择构建工具

在这里插入图片描述
我们一般都是使用qmake,cmake并非Qt专属,很多的开源项目都会使用cmake,Qbs是新一代的Qt构建工具,但是用的很少。
构建的话是通过Qt写的程序,会涉及到一系列的元编程技术,即通过代码来生成代码。Qt的框架会在编译的时候,自动先调用系列的生成工具,基于你自己写的代码,生成一系列的其他的C++代码,最终编译的代码,也是最后生成的这些代码。

3.4类信息

在这里插入图片描述
使用Qt Creator创建项目,会自动生成一些代码出来,生成代码就包含一个类,Base class就是要选择这个自动生成的类的父类是谁
QMainWindows的界面是完整的应用程序窗口(可以包含菜单栏,工具栏,状态栏)
QWidget表示一个控件(窗口上的一个具体元素,输入框,按钮)
QDialog表示一个对话框
Qt中内置的类都是以Q前缀开头的
其中生成的文件名和类名是相关联的(推荐)
下面的form file是用来通过图形化的方式来生成界面,此时就可以通过使用Qt Designer或者Creator来编辑这个ui文件,通过图形化的方式生成图形界面

3.5翻译文件

在这里插入图片描述
选择翻译文件,可以不用管,这跟前面的国际化有关系

3.6选择编译器

在这里插入图片描述
选择一下基于哪个编译器的Qt SDK来构建后续代码

3.7项目管理

在这里插入图片描述
可以选择git来作为版本控制系统,也可以可以直接点完成

3.8运行

在这里插入图片描述
下面是运行按钮
在这里插入图片描述

4.项目细节说明

4.1 mian.cpp

在这里插入图片描述
其中主函数中的第一行的QApplication是一个Qt提供的一个类,它创造了一个对象,编写一个Qt的图形化界面程序是所必须有的
Widget是之前在创建项目时所想要生成的一个类,它父类是QWidget,下一行是创建了一个QWidget的控件对象,然后通过show()函数来让控件显示出来,相对应的hide()函数是让控件隐藏起来,这些都是它的父类QWidget提供的
再接下来的的是一个exec,是为了能够让程序执行起来

4.2 widget.h

在这里插入图片描述
这个整个头文件是一个Widget类的一个声明,它也展现出了它是继承了QWidget父类,这个类是Qt的软件开发工具包内置的,同时使用这个类就需要包含对应的头文件,这里我们可以发现,我们所想要用的类名和头文件是一样的,这对于我们使用来说是非常便利的。
在它的类中,还有一个宏定义Q_OBJECT,它是Qt内置的宏,它展开后有一大堆的代码,如果类中想要使用“信号和槽”就需要引入这个宏,如果想要具体查看的话可以按Ctrl+点击
其中Widget类的构造函数是有参数的,这个parent是在后期用于对象树的,创建Qt的对象,就可以把这个对象给挂到对象树上,此时就需要指定父节点
类中的对象只有一个指针,它是和form file密切相关

4.3 widget.cpp

在这里插入图片描述
其中第一行包含的头文件就是创建项目时选择要创建的头文件,第二行头文件是form file被qmake生成的头文件
在构造函数中的初始化列表它所用到给ui对象初始化以及用ui指针来调用setupUi的两者作用是为了把form file生成的界面和当前widget关联起来

4.4 widget.ui

在这里插入图片描述
当前我们如果点击文件的话会跳到这个界面,此时就是我们的Qt Creator会调用Qt Desigener,来打开ui文件,我们可以拖动左边的控件到中间的程序窗口中,来进行创建改变我们的界面了。右下角是每个控件的属性
此时当我们点击到编辑页面,我们就会转到代码页面,这里面的所使用的格式是xml格式,它和html格式很相似,但是他们两有本质的区别:xml的标签所表示的含义是自定义的,而html的格式是有标准规定好的
我们的Qt是使用qmake来调用相关的工具,并且通过我们的xml文件来构建生成一些对应的C++代码,从而生成整个界面

4.5 项目名.pro

在这里插入图片描述

这个是项目的工程文件,它是qmake工具构件时重要的一个依据,它其实类似于我们的Linux下的makefile,但是它比makefile更加的简单方便,我们不需要亲自来维护,有Qt Creator来帮助我们自动维护

4.6更详细文件

我们可以通过右击项目名.pro,然后选择“在explorer中显示”,可以查看更多的文件,他们都是编译运行过程中产生的中间文件
在这里插入图片描述
当我们查看上级目录时会发现一个叫build的目录,这个目录就是该项目运行过程中产生的临时文件
在这里插入图片描述
它的里面出现了makefile文件,它是Qt qmake自动生成的
在这里插入图片描述
其中最引人注目的是ui_widget.h,它里面是Qt根据xml生成的头文件内容,它的内容就是用C++编写的能够生成构建具体界面的代码,它其实就是widget.h头文件中Widget类中的ui指针,虽然长得不一样
在这里插入图片描述
在这里插入图片描述

然后ui调用setupUi这个函数就构建出了界面

🌸🌸Qt的入门大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

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

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

相关文章

在navicat对mysql声明无符号字段

1.无符号设置 在 MySQL 中,我们可以使用 UNSIGNED 属性来设置列的无符号属性,这意味着该列只能存储非负整数值。对于一些需要存储正整数的列,比如年龄、数量等,使用 UNSIGNED 属性可以提高数据存储和查询的效率,并且能…

智能工业网络,需要何种工业以太网交换机作为支撑?

随着工业企业数字化及信息化的进一步深化升级,工业领域相关控制及信息系统的业务类型不断增加、复杂性不断提升,工业控制网络与工业信息网络也呈现融合趋势,具备支持多业务、多协议、多厂商设备和数据的互联互通、共网承载以及高质量传输能力…

【源码+文档+调试讲解】actual self 服装店的设计与实现

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统服装销售信息管理难度大,容错率低&#xff0c…

C# 中 IEnumerable 和 IQueryable 接口之间的区别

在 C# 中,IEnumerable和IQueryable接口都用于查询数据集合,但它们的用途不同,功能也不同。下面是它们之间差异的细分: 1. C# 中的 IEnumerable 接口 在命名空间中定义System.Collections。表示集合中元素的只进式游标。适用于查…

Linux-网络编程

网络编程概述 本文将介绍网络编程中的一些基础知识,包括TCP和UDP的区别、端口号的作用、字节序的概念,以及通过socket编程实现客户端和服务器之间的通信。我们还会展示一些示例代码,帮助理解这些概念的实际应用。 1. TCP/UDP的区别&#xf…

VSCode + GDB + J-Link 单片机程序调试实践

VSCode GDB J-Link 单片机程序调试实践 本文介绍如何创建VSCode的调试配置,如何控制调试过程,如何查看修改各种变量。 安装调试插件 在 VSCode 扩展窗口搜索安装 Cortex-Debug插件 创建调试配置 在 Run and Debug 窗口点击 create a launch.json …

详解相似度计算方法及其应用场景

详解相似度计算方法及其应用场景 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨相似度计算方法及其在实际应用中的场景。 什么是相似度计算…

Linux各种命令——tac命令,more 命令, less命令,head命令,tail命令,file 命令, stat 命令

注意:tac命令是倒置输出文件内容 #### tac - **作用:倒叙访问文件内容** - 格式:tac 参数 文件名 - **例如:** **tac /etc/passwd** #### more 命令 - 作用:翻页查看文件内容,适合内容较多的文件查看…

ingress代理前后端服务跨域

一、前言 ingress对于前后端服务的代理有不同的方式可以实现,前后端服务可以通过不同的域名实现流量的分流策略,不过这需要解决前后端域名不同产生的跨域问题,也可以通过不同的path实现流量的分流策略,该方式不会产生跨域的问题 …

Apipost接口测试工具的原理及应用详解(二)

本系列文章简介: 随着软件行业的快速发展,API(应用程序编程接口)作为不同软件组件之间通信的桥梁,其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此,对API进行严格的测试成为…

debian linux E: 无法定位软件包

原因是国内镜像站全寄了,你设国内源没用!,换成官方的然后懂? sudo vim /etc/apt/sources.list添加debian官方源 deb https://deb.debian.org/debian/ bullseye main contrib non-free deb-src https://deb.debian.org/debian/ bullseye mai…

AI 创业者的探索之路——从 Lester Holt 的访谈中汲取灵感

随着人工智能技术的快速发展,越来越多的创业者开始关注这一领域。在最近的一次采访中,Lester Holt 分别与 OpenAI 的 Sam Altman 和 Airbnb 的 Brian Chesky 进行了深入交流,探讨了 AI 技术的发展、应用以及对个人和社会的影响。本文将总结这次访谈中的关键点,并为 AI 创业…

【单片机毕业设计11-基于stm32c8t6的智能水质检测】

【单片机毕业设计11-基于stm32c8t6的智能水质检测】 前言一、功能介绍二、硬件部分三、软件部分总结 前言 🔥这里是小殷学长,单片机毕业设计篇11基于stm32的智能水质检测系统 🧿创作不易,拒绝白嫖可私 一、功能介绍 -------------…

昇思MindSpore学习笔记2--快速入门

一、环境准备 安装minspore模块 !pip uninstall mindspore -y !pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore2.3.0rc1 导入minsporei mport mindspore from mindspore import nn from mindspore.dataset import vision, transforms from mindspore.d…

Java----面向对象----总复习

面向对象 面向对象的程序设计思想(Object Oriented Programming),简称OOP.是一种设计者思想.关注的焦点是类,参照现实中的事务,将事务的属性特征,行为抽象出来,用类来表示.代码结构:以类为组织单位,每种事务都有自己的属性和行为,功能, 思想:从宏观上 帮助我们把握,整体分析整…

spring常用方法

1. 读取配置文件信息 方式一: // 获取文件路径 String fileName "application.yaml"; String filePath this.getClass().getClassLoader().getResource(fileName).getPath();BufferedReader bufferedReader new BufferedReader(new FileReader(path)…

《昇思25天学习打卡营第5天 | 网络构建》

《昇思25天学习打卡营第5天 | 网络构建》 目录 《昇思25天学习打卡营第5天 | 网络构建》什么是神经网络模型构建一个用于Mnist数据集分类的神经网络模型定义模型类模型层nn.Flattennn.Densenn.ReLUnn.SequentialCellnn.Softmax 模型参数 想要学习神经网络模型的构建&#xff0c…

Bazel plugin for Visual Studio Code

语法突出显示 Bazel Build Targets 树显示工作区中的构建包/目标BUILD 文件中的 CodeLens 链接可通过单击目标直接启动构建或测试Buildifier 集成以检查和格式化您的 Bazel 文件(需要安装 Buildifier)tasks.json 的 Bazel Task 定义在构建期间调试 .bzl…

C++:静态断言内存对齐

静态断言 C中的断言assert (1)直接参考:https://www.cnblogs.com/lvchaoshun/p/7816288.html (2)C的assert是运行时检测发现错误,而不是编译时 (3)C在编译时错误用#error来输出C静态断言 (1)C引入static_assert(表达式, “提示字符串”)来实现编译时的静…

window搭建git环境

1.下载安装window下git专用软件scm 从Git for Windows 官网网站下载,并且一路安装即可 安装成功后通过桌面快捷图标Git Bash点击打开 安装后软件应该会自动帮助配置环境变量,如果没有需要自己配置使用 2.git环境配置 2.1设置姓名和邮箱(github上你注…