C++QT5学习视频笔记

PS:因为最近的项目需要,要做一个界面,虽然之前学习过也用过PyQt做过界面,但考虑到Python程序运行的效率低及工控机中底层硬件的调用,于是选择了C++ QT来做界面。
网上也找了很多的资料、视频、书籍来学习Qt5,但很多都是基于Qt Creator的程序开发,因为时间紧迫且自己的C++水平也很一般,但我需要快速入门且用于实践。在Windows系统下,个人觉得还是通过Qt designer进行界面绘制,然后在VS中编写信号函数、槽函数,这样做的效率比较高。
本着“用到什么,就学什么”的学习理念,我找到了下面这套视频教程,写这篇的博客初衷是:通过查看每个视频的目录,大概知道视频讲了哪些内容,因为自己不是专门学Qt的,可能在设计一个界面时,就只用到了按钮和文本框,那就去找相对应的视频,而不需要全部都学,省时省力。同时每个视频中列举到的示例和关键点,我也记了下来,用于以后自己需要做界面时,浏览本博文内容就大概知道自己的界面需要学哪些内容,哪些示例对自己有帮助,就去看下面对应的视频即可。

1.在进行Opencv和Qt编程时,若出现报错:诸如无法解析外部命令等,多半是环境没配对。
在这里插入图片描述
在这里插入图片描述
2.在VS中编译运行Qt界面时,有时候需要调出控制台来查看程序的执行情况。
在这里插入图片描述
3.Windows安装qt与VS2019添加QT工具过程
https://blog.csdn.net/ljb9854/article/details/102600931
https://blog.csdn.net/visual_eagle/article/details/106236109

视频目录

01 介绍

001 介绍

002 QT5开发环境qtcreatorSDK和vs插件下载和安装

Qt官网:https://www.qt.io/cn
在这里插入图片描述

003 QT的SDK中各个目录和文件功能说明

004 创建第一个qtcreator项目并确定文件和目录的作用

005 linux中安装qt及其依赖并编写测试项目

006 windows下qtcreator调试环境安装配置使用

007 qtcreator引入第三方opencv库和头文件路径

008 qtcreator项目配置添加界面并设置构建和运行

009 vs2015创建QT项目并详细介绍vs项目设置

1.Qt项目的环境配置
2.调出控制台

010 VS设置编译的qt库版本和导出为qtcreator项目

1.将vs中编写好的Qt程序转换为Qt creator的项目
2.若移植了一个别人的程序,可能会加载不了,需要先设置版本,在视频5:00处
3.在已有项目中手动添加一个ui文件,并给它绑定类

02 QMake项目原理和手动配置qtcreator

011 qt项目由源码和界面资源文件到程序的步骤分析

012 配置vs和qmake环境变量执行qmake生成makefile

013 通过批处理完成qt项目编译并移植到ubuntu下完成qt项目配置和编译

014 qmake的pro项目导出为vs项目

015 qmake引入qt库创建窗口设置头文件分析makefile并设置输出

016 qmake语法设置pro中的库导入路径和导入库导入opencv

017 qmake创建动态链接和静态链接库并在windows中输出dll和lib

018 pro项目文件中设置dll和lib的输出路径并在ubuntu下测试so库

019 qtcreator的debug版本和release版本配置和设置

020 qtcreator的qmake跨平台配置

03 Qt信号槽使用及其原理

021 QT信号槽概念原理讲解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

022 通过qt设计器qt designer设置关闭窗口和最小化窗口信号槽

023 手动添加信号函数并分析qt的moc如何生成信号代码

在这里插入图片描述

024 手动创建槽函数并在qt designer中实现手动创建的信号槽绑定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

025 使用connect函数实现信号槽绑定并分析moc生成的槽函数代码

在这里插入图片描述
在这里插入图片描述

04 Qt核心窗口基类QWidget

026 QWidget类分析显示和隐藏接口说明线程类QThread使用方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

027 创建vs项目调用QWidget显示和隐藏并演示线程中调用槽函数的错误

1.自己创建一个QWidget,修改窗口标题
在这里插入图片描述

028 创建QWidget的子类添加支持信号槽的宏connect函数绑定信号槽

1.线程的调用
2.在线程中让窗体显示3s后消失

029 获取QWidget坐标尺寸并设置geometry

在这里插入图片描述

030 创建QThread子类并使用signals关键字创建信号函数

1.使用线程,将窗口从左上角移动到右下角

031 使用slots手动创建槽函数并使用线程信号和槽中实现窗口移动动画

032 QWidget窗口状态设置最大化最小化全屏

在这里插入图片描述
1.设置窗口状态为最大化
在这里插入图片描述
在这里插入图片描述
实例:将最大化、最小化、默认状态、全屏与信号槽绑定在一起

033 QWidget窗口样式设置无边框最大化最小化关闭按钮定义

在这里插入图片描述
PS:所有的窗口类型去源程序中查看
在这里插入图片描述
①示例,建一个无边框的窗体
在这里插入图片描述
效果:
在这里插入图片描述
②示例:
在这里插入图片描述
效果:
在这里插入图片描述
③示例:
在这里插入图片描述
效果:
在这里插入图片描述在这里插入图片描述
效果:
在这里插入图片描述
④示例:标题栏只保留关闭按钮
在这里插入图片描述

05 QString字符串处理及中文乱码问题处理

034 gbk_utf_ansi_asc字符集分析字节序

035 QString项目创建空和NULL判断

在这里插入图片描述
在这里插入图片描述
空判断举例:
在这里插入图片描述
输出:
在这里插入图片描述

036 QString格式化字符串转换

字符串拼接举例:
在这里插入图片描述
输出:
在这里插入图片描述
格式化字符串:
①字符串拼接
在这里插入图片描述
在这里插入图片描述
②字符串与整型、浮点型之间的转换
在这里插入图片描述

037 QString查找_截断_替换_分割字符串接口讲解

在这里插入图片描述
在这里插入图片描述
通过正则表达式查找
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

038 QString的indexof查找字符串的示例

示例:QString字符串的遍历
在这里插入图片描述
输出:
在这里插入图片描述

039 QString字符串查找替换replace和切割split示例

示例:QString字符串的查找
在这里插入图片描述
在这里插入图片描述
示例:QString字符串的替换
在这里插入图片描述
示例:QString字符串的切割
在这里插入图片描述

040 QString通过QRegexp正则表达式查找替换分割字符串

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:
在这里插入图片描述

041 Qt中文乱码问题在vs项目中显示中文

在这里插入图片描述
在这里插入图片描述
QStringLiteral:将编码格式转化为UTF-8

042 VS中正常移植到QTCreator乱码的问题源码文件的编码格式转换

原因:因为QTCreator中本身就是utf-8的编码格式,再使用QStringLiteral的话,就会出错。
Qt中文乱码问题在vs项目中显示中文除了041中的方法外,还可以在程序中加入:
在这里插入图片描述
也可以解决中文乱码问题。

043 编码方式转换将QString中存放的中文在WinAPI中显示

在这里插入图片描述

06 QLabelQPushButton和QLineEdit

044 QLabel设置文件格式颜色背景色字体和大小

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

045 QLabel使用pixmap显示图和qss设置背景缩放图

具体的操作看视频,在QT设计师中通过QLabel显示图片,关于图片的缩放等等。

046 QLabel播放gif动画

在这里插入图片描述

047 QLabel富文本显示并处理链接点击和hover信号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:使用linkActivated()和linkHovered(),配合槽函数,鼠标放在Label上面产生一个事件,鼠标点击产生一个事件,具体的看视频。
在这里插入图片描述

048 QLable设置可编辑可选择并获取选择的文本

在这里插入图片描述
在这里插入图片描述
示例:见视频

049 QPushButton介绍和点击选择鼠标按住松开事件设置

在这里插入图片描述
在这里插入图片描述
示例:QPushButton按键的click()、click(bool)、pressed()、released()事件

050 QPushButon快捷键设置组合键顺序按键激发信号

在这里插入图片描述
示例:通过按键盘上事先设定好的快捷键,来触发按钮的事件
在这里插入图片描述

051 QPushButton背景字体qss样式设置添加背景图片

在这里插入图片描述
示例:讲了QPushButton中设置背景色、字体及颜色、设置背景图片、PushButton的flat属性。

052 QPushButton使用qss添加圆角边框并添加渐变颜色

示例:
1.设置背景色、字体及颜色,和QLabel一样,选中按钮,右击选择改变样式表,里面可以设置按钮的背景(添加资源)、渐变色(添加渐变)、字体的颜色(添加颜色)、字体的大小样式(添加字体)。
在这里插入图片描述
2.设置圆角边框
在这里插入图片描述
3.设置按钮的渐变效果
在这里插入图片描述
在这里插入图片描述
样式自己编辑

053 QPushButton通过qss实现鼠标悬停设置不同的渐变背景

在这里插入图片描述
在这里插入图片描述
示例:鼠标没有移动到按钮上时,按钮是一种形态,鼠标移动到按钮上时,按钮是另一种形态。

054 QLineEdit分析文本内容提示_输入和获取只读删掉按钮最大输入

在这里插入图片描述
在这里插入图片描述
示例:效果如下,具体的看视频
在这里插入图片描述
在这里插入图片描述

055 QLineEdit只读_删除按钮_设置字符长度_重做和撤销

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

056 QLineEdit的setInputMask输入掩码格式详解和示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:指定输入QLineEdit中的文本形式,如IP地址、字母等等。

057 QLineEdit的QValidator检验整型和浮点型输入并关闭科学计数法

在这里插入图片描述
示例:对于QLineEdit中的内容,规定其输入的字符类型,输入的数据范围,精度,使不使用科学计数法等等。

058 QLineEdit的QRegExpValidator正则验证邮箱格式

示例:使用正则表达式规定QLineEdit中的内容是邮箱的格式,若输入不正确时,会提示报错,同时也会保存正确的输入邮箱。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

059 QLineEdit的信号事件修改和确认

在这里插入图片描述
示例:对于QLineEdit信号的一系列操作。

060 QLineEdit的qss样式设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:设置QLineEdit的样式:边框的样式、输入字符为密码的格式、圆角等等,都和QLabel设置的一样,都在Qt设计师中完成,不需要在VS中编写代码。

07 QLayout布局器QObject子节点遍历

061 QObject子节点访问接口并示例遍历子节点

在这里插入图片描述
示例:假设在一个模板中创建了几个对象,如下所示,可以通过遍历的方式,得到这些对象的名称,
在这里插入图片描述
在这里插入图片描述
若在模板中还嵌套一个模板,可以通过如下方式进行遍历:
在这里插入图片描述
在这里插入图片描述

062 递归遍历QObject所有子节点并获取控件类型做转换

示例:
1.递归遍历QObject所有子节点
在这里插入图片描述
在这里插入图片描述
输出:
在这里插入图片描述
2.对于大型项目,很多的控件,可以通过递归获取控件的类型,并通过强转换改变原控件的类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

063 QVBoxLayout垂直布局器ui添加并分析其源码机制演示另三种布局器

在这里插入图片描述

064 QSizePolicy布局尺寸策略分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

065 手动创建代码添加QVBoxlayout布局窗口

在这里插入图片描述

066 QVBoxLayout和QHboxLayout三种尺寸策略讲解和演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

067 QVBoxLayout和QHboxLayout最大最小尺寸设置演示

在这里插入图片描述
在这里插入图片描述
也可以通过Qt设计师中,加弹簧来解决。

068 QGridLayout接口讲解和代码示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

069 QFormLayout布局函数介绍并添加输入框按钮和子布局器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

070 QFormLayout遍历布局中所有元素实现空验证和所有内容情况信号槽

示例:手动创建代码完成如下界面的制作,通过输入Name、Age、Email,这时候之前讲到的遍历QObject所有子节点并获取控件类型做转换就派上用场了,可以遍历Name、Age、Email中输入的内容,或进行保存Save,或进行清除Clear。
当然也可以通过在QT设计师中完成界面的制作,槽函数信号函数等等可以在VS中编写代码,这样比较省事。
在这里插入图片描述

08 QCheckBoxQRadioBoxQComboBoxQSlider

071 QCheckbox分析信号处理单选多选分组单选

072 QButtonGroup添加QCheckBox处理点击选择信号

073 QRadioButton结合QButtonGroup和QVBoxLayout

074 QComboBox控件介绍并使用界面设计器添加数据

075 QComboBox通过代码添加内容包括图标

076 QComboBox插入QVariant用户自定义数据

077 QComboBox信号事件处理

078 QSlider属性方法讲解和项目创建

079 QSlider信号事件处理

080 QSlider样式qss设计

081 QSlider重载鼠标事件UI支持自定义XSlider滑动条移到点击位置

09 列表控件列表表格树

082 QListWidget基础和属性设置

083 QListWidget手动插入数据包含图标的多种方法

084 QListWidget遍历元素和编辑列表实现

085 QListWidget内容排序

086 QlistWidget信号事件

087 QListWidget显示其他控件

088 QTableWidget控件介绍

089 QTableWidget常用属性分析和代码分析

090 QTableWidget水平和垂直标题的插入和设置

091 QTableWidget插入数据插入图标图片和widget控件

092 QTableWidget选择多行和删除多行处理

093 QTableWidget信号鼠标悬停事件

094 QTableWidget标题栏点击信号

095 QTableWidget样式qss设定

096 QTreeWidget介绍

097 QTreeWidget属性分析和设置

098 QTreeWidget标题插入和设置

099 QTreeWidget插入数据图标widget

100 QTreeWIdget信号事件

101 QTreeWidget样式qss设置

10 QDialog和进度条

102 QDialog属性方法设置

103 重载QDialog开发自定义样式圆角边框和按钮的XMessageBox

104 QProgressBar进度条线程模拟显示

105 QDialog进度条结束后窗口淡出动画

11 菜单工具栏和状态栏QMainWindow

106 QT菜单QMenuBar接口介绍

107 QMenuBar通过代码添加到三级菜单

108 QMenu和QAction菜单事件信号

109 鼠标悬停动态产生Qmenu菜单

110 QMenu菜单的单选和多选

111 QMenu按钮菜单

112 QTooBar工具栏和QStatusBar状态栏

113 QMainWindow菜单工具状态栏

12 QT事件重载 QEvent

114 重载并测试所有事件的入口函数event

115 重载event或按下松开函数捕获键盘事件解决连按问题

116 鼠标事件三种坐标按键状态和重载事件函数介绍

117 鼠标事件代码演示三种坐标显示和转换

118 鼠标按键事件左右键和中间键

119 鼠标双击单击和移动事件并示例右键菜单

120 鼠标图标替换为图片

121 窗口大小变化事件自动改变控件大小

13 QT图像绘制QPainter

122 QPainter的qt绘制介绍

123 绘制文本并设置动态设置字体

124 绘制线并设置线的参数

125 QImage各种创建空间的接口并做清理和空判断

126 QImage空间访问接口内存存储方式图像拉升和存储

127 QImage代码演示多种遍历方法修改图像

14 Qt实战图片编辑器XPS

128 XPS图片编辑项目需求设计

129 XPS项目创建界面设计

130 XPS菜单打开并显示图像

131 XPS抗锯齿的画笔功能

132 XPS画笔的粗细设置

133 XPS画笔颜色设置

134 XPS橡皮擦功能完成

135 XPS图片保存功能完成和课程结束语

©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页