作者前言
🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言、C++和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂
QT
初识QT
QT属于一种前端开发技术,现特指用来进行桌面开发,也就是客户端开发
QT无法开发网页前端,也不能开发移动应用(目前是可以了)
优势:
不仅支持windos, 还支持Linux和MAC及嵌入式系统*+,可以 跨平台使用
QT是一种跨平台的c++图形化界面用户应用程序框架
客户端开发的首要任务
进行编写和用户交互的界面
和用户进行交户的界面有两种风格
1. 命令行界面(黑框框)统称为TUI
2. 图形化界面同称为GUI
Qt开发工具
安装三个部分:
- C++的编译器(比如gcc、cl.exe…)
- QT的SDK, 软件开发包, windows版本的QT内置了C++编译器
如果想使用vs内置的c++的编译器.需要配置很多额外的东西,容易出错 - QT集成的开发环境
有三种
(1) Qt官方提供的QT creator, 容易上手,比较适合初学者
(2) visual studio, 功能更强,需要额外配置更多, 安装QT插件有点麻烦
(3) Eclips
整体来说,只要安装QT SDK
安装QT
下载好后,我们运行安装, 后面我们会碰见这样的页面
红框那个就是QT SDK中内置的c++编译器, 一个window版本的编辑器,这里我全选了,安装速度会很慢, 但是
QT环境变量配置
我们需要找到我们电脑里面的环境变量窗口,如图:
有两个环境的窗口,一个是用户变量,一个是系统变量,
然后找到需要添加进去的链接,这里我只选择了,如图
A:\QT\QT\5.14.2\mingw73_64\bin,这个链接添加进去,你们也可以全部添加进去,选择用户变量或者系统变量其中一个就行,
然后找到path 进行添加就行
QT 提供的工具
QT SDK配置好,安装好后,
我们查看左下图
然后我们点击第一个
就会点开QT助手,这个是离线的
然后往下滑,找到如图:
Designer ,这个是图形化界面的工具, 通过拖拽的方式快速生成界面,后面经常使用
最后找到Qt的集成开发工具,
创建一个文件
然后我们直接点击这个
.来到这个界面,
这三个选项是构建工具, 其中qmake是老牌的Qt构建工具, 而CMake 并非Qt专属的,很多开源项目都会使用CMake, Qbs是新一代出现的,实际上用的人很少,官方也不怎么维护了,所以我们使用qmake就行,
然后我们再来到这个界面
使用Base class 会自动生成一些代码, 其中包含一个类,当我们点击的时候,会有三个基类
·
Qmainwindons 完整的应用程序窗口(包含有菜单栏,工具栏,状态栏…)
Qwiget 表示一个控件
QDialog表示一个对话框
我们一般选择第二个就行
如图:
其中 form file
然后点击下一步
这个一般是国际化的,可以忽略,点击下一步
然后选择编译器,这里我选择如图的,
然后点击下一步
图中可以选择git,也可以不选,git就是把代码上传到gitee仓库里面
Qt文件的认识
main文件的认识
当我们创建完文件的时候,可以看到如图:
当我们运行的时候就会弹出一个小框,需要注意的是,文件路径不能有中文,不然会报错
然后我们来一一的介绍其中的代码的意思
代码认识
这里这一行的man里面的参数,第一个参数是 argv的长度减1后的结果, 这个argv里面存储的就是命令行指令地址,我们输入的命令行以空格为切割符切割,依次把切割后的内容存储进去
接下的代码如图:
这个是编写Qt的图形化界面程序必须要有的对象,
下一行代码如图:
这个类和我们刚开始创建文件的时候,创建的类名是一样的,而widget的基类就是Qwidget
如图:
其中
w.show();
显示控件, 如果要隐藏控件可以使用hide()
widget,h的认识
接下来
我们看看我widget类的内容,点开头文件
我们可以看到如下:
#ifndef WIDGET_H
#define WIDGET_H这个写法是保证只包含一次, 但是还是建议使用 #pragma once
接下面的代码其他的意思如图,
需要注意的是Qt内置的类,一般都是头文件的名字,如果一个头文件里面包含了其他头文件,当我们引用这个头文件,这个头文件里面引入的头文件也会跟着引入进来的,不需要再次包含
接下来我们往下看会看到如图:
这是一个宏,这个宏有啥作用呢, 在Qt中有一个非常核心的机制就是"信号和槽", 如果某个类想要使用"信号和槽"就必须引用Q_OBJECT这个
接下来我们看到构造函数里面
在Qt中引入了一个对象树(后面讲解), 创建的Qt的对象就可以把这个对象放到这个树里面去, 挂上去的时候,我们就需要指定父节点, 前面数据结构我们讲过树, 一个节点可以有多个子节点,但是该节点只能有一个父节点
最后我们看到widget的成员ui, 和form file密切相关
widget.cpp的认识
我们再看到 widget.cpp文件里面
Form文件夹
然后我们看到Forms文件夹里面的文件
当我们双击这个ui文件,就会看到一个窗口
其中灰色的就是程序生成的程序窗口
左边的分布
这个是工具,可以通过拖拽的方式放到程序窗口中,
然后我们点击左边框的编辑窗口就会看到一些代码
如图:
这个就是ui文件里面的本体了
图中的这个格式就是xml格式, 和HTML的格式很相似的,都是通过标签来表示数据的,
这些标签的含义由QT开发的大佬决定, html的标签是固定死的,而xml标签我们可以自定义
在Qt中使用xml文件就是描述程序的界面是啥样式, 然后进一步通过qmake调用相关的工具,依据这个xml文件生成一些c++代码,从而把完整的界面构建出来
Qt的项目工程文件
这个就是qmake工具构建时候的重要依据
如图:
这个文件和qmake搭配起来相当于Linux的makefile文件
运行文件生成的临时文件
当我们运行程序的时候,就会生成一些临时文件, 我们查看对应的存放我们创建的文件对应的文件夹里面
当我们点进去看的时候
这个ui_widget.h也就对应了前面的widget,cpp里面包含的头文件, 我们点击进去就会看到,
这个就是根据xml生成的c++文件
我们需要知道
cpp文件中的Ui::widget类型就是Ui_widget,
那是因为后面的代码如图:
这也就可以解释了