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…

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

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

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

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

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

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

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上你注…

封装了一个iOS滚动厨窗效果

效果图 背景 我们要实现如图的厨窗效果,不能通过在tableView底部添加一个背景图片的方式,因为这需要修改整个tableView的背景色为透明,影响到的范围太大,只能将这个效果局限在这个cell 中,然后通过监听tableView的滚动…

追觅科技25届校招校招24年社招科技北森题库商业推理综合测评答题攻略、通关技巧

一、追觅科技这家公司怎么样? 追觅科技是一家在智能清洁家电领域表现出色的企业。 二、追觅科技待遇怎么样 追觅科技的待遇在业内具有竞争力,具体信息如下: 1. **薪酬结构**:根据对外经济贸易大学招生就业处发布的2023届校园招…

虹科技术丨跨越距离障碍:PCAN系列网关在远程CAN网络通信的应用潜力

来源:虹科技术丨跨越距离障碍:PCAN系列网关在远程CAN网络通信的应用潜力 原文链接:虹科技术 | 跨越距离障碍:PCAN系列网关在远程CAN网络通信的应用潜力 欢迎关注虹科,为您提供最新资讯! #PCAN #网关 #CA…

Flask之电子邮件

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 一、使用Flask-Mail发送电子邮件 1.1、配置Flask-Mail 1.2、构建邮件数据 1.3、发送邮件 二、使用事务邮件服务SendGrid 2.1、注册SendGr…

最新源支付系统源码 V7版全开源 免授权 附搭建教程

最新源支付系统源码_V7版全开源_免授权_附详细搭建教程_站长亲测 YPay是专为个人站长打造的聚合免签系统,拥有卓越的性能和丰富的功能。它采用全新轻量化的界面UI,让您能更方便快捷地解决知识付费和运营赞助的难题。同时,它基于高性能的thin…

TypeScript学习笔记(全)

文章目录 TypeScript入门2.编译并运行TS代码2.1.简化运行ts步骤 3.TS中的常用类型3.1.TS中的类型注解3.2.TS中的原始类型3.3.TS中的数组类型3.4.TS中的联合类型3.5.类型别名3.6.函数类型3.6.1.单独执行参数、返回值类型3.6.2.同时指定参数,返回值类型3.6.3.函数的vo…

广东省钟表行业协会第十二届会员大会暨2024年钟表行业发展交流会

6月25日广东省钟表行业协会第十二届会员大会暨2024年钟表行业发展交流会在广州万富希尔顿酒店隆重召开。大会选举沙胜昔为广东省钟表行业协会第十二届理事会会长。 领导发言 新任会长 沙胜昔 首席荣誉会长 吴伟阳 新老会长交接仪式 本次大会,全国钟表大伽齐参与…

前端Web开发HTML5+CSS3+移动web视频教程 Day3 CSS 第1天

P29 - P43 从此开始进入 CSS 的学习。前面都是 HTML 的学习。 CSS 的作用:美化。 HTML 只是规定了网页内容有哪些,在网页中显示的位置默认是从上到下显示,还带有默认效果,比如超链接有颜色有下划线,无序列表有小圆点…

CSS Flex弹性布局

一、传统布局与flex布局 1、传统布局 2、flex布局 二、flex布局原理 1、布局原理 2、flex布局体验 三、flex布局父项常见属性 1、常见的父项属性 2、flex-direction设置主轴的方向 3、justify-content 设置主轴上的子元素排列方式 4、flex-wrap 设置子元素是否换行 …

二叉树从根节点出发的所有路径

二叉树从根节点出发的所有路径 看上图中 二叉树结构 从根节点出发的所有路径 如下 6->4->2->1 6->4->2->3 6->4->5 6->8->7 6->8->9 逻辑思路: 按照先序遍历 加 回溯法 实现 代码如下 // 调用此方法,将根节点传递…

上位机图像处理和嵌入式模块部署(mcu 项目1:上位机编写)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面,我们说过要做一个报警器。如果只是简单做一个报警器呢,这个基本上没有什么难度。这里,我们就适当提高一下…