qt 的基础学习计划列表
1 第一天 (qt 的基础)
什么是qt
hello程序,空窗口
添加按钮(对象树、父子关系)
按钮的功能(信号和槽)
信号和槽的拓展
2 第二天 各个控件
最简单的记事本界面(菜单栏、状态栏、工具栏)
使用ui和资源文件
创建对话框
各个控件以及布局
3 第三天 高级
捕捉鼠标(qt的事件,鼠标事件)
定时器事件
绘图事件、绘图设备
文件读写
4 第四天、第五天案例——翻金币的游戏
5 第一个hello程序,qt的项目结构
创建项目的时候 QWidget、QMainWindow、QDialog注释 QWidget 是所有能看到的窗口或者控件的父类,QMainWindow、QDialog 都继承自它main函数QApplication 就是Qt里边每个应用程序有且仅有一个的应用程序对象QApplication::exec() 程序的生命循环、消息循环 ,当作以下形式while(1)* {* if(点击x按钮)* break;* if(点击了最小化按钮)* 最小化动作;* ...* }Widget头文件:Q_OBJECT //宏,引入qt信号和槽的一个宏HelloWidget(QWidget *parent = 0);//parent窗口指针,父窗口对象的指针//如果parent为0或者NULL,表示当前窗口对象是个顶层窗口//顶层窗口就是在任务栏可以找到的窗口.pro文件QT += core gui # 引入qt的模块 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets #如果qt版本号大于4,就引入widgets模块#指定目标,生成可执行程序的名字TARGET = 01_hello#模板,生成什么文件,app表示应用程序exe,lib 就是生成库TEMPLATE = appQt里边绝大部分的类都是继承自QObject ,QObject是一个顶层类
6 父子关系
默认情况下按钮没有认干爹的情况下,是个顶层窗口
想要按钮显示在窗口上,就要跟窗口构造父子关系
1 setParent
2 构造函数传参
7 Qt坐标系
是以父窗口的左上角为0,0
以向右的方向为x的正方向
以向下的方向为y的正方向
顶层窗口就是以屏幕左上角为0,0
8 QT常用API函数
move 移动窗口到父窗口某个坐标
resize 重新设置窗口的大小
setFixedSize 设置窗口的固定大小
setWindowTitle 设置窗口标题
setGeometry 同时设置窗口位置和大小,相当于move和resize的结合体
9 对象树
概念:各个窗口对象通过建立父子关系构造的一个关系树
内存管理:父对象释放的时候会自动释放各个子对象(使用children列表)以后基本都是用new的方式来创建窗口对象
注意点:1 父对象能够被释放2 父对象、子对象,直接或者间接继承自QObject
10 信号和槽
按钮
被点击
窗口
关闭建立四者的关系(按钮 被点击 窗口 关闭)信号发送者
信号
信号接收者
槽:信号的处理动作
默认情况下,它们四者没有关系,通过connect 建立四者的关系conncet(信号发送者,信号,信号接收者,槽)信号和槽,本质都是函数connect里边4个参数都是指针
connect(btn,&QPushButton::clicked,this,&Widget::hide);使用connect的时候保留&符号
1 提高代码可读性
2 自动提示
11 自定义信号和槽
自定义信号1 函数声明在类头文件的signals 域下面2 void 类型的函数,没有返回值3 可以有参数,也可以重载4 只有声明,没有实现定义5 触发信号 emit obj->sign(参数...)自定义槽1 函数声明在类头文件的public/private/protected slots域下面(qt4以前的版本)qt5 就可以声明在类的任何位置,还可以是静态成员函数、全局函数、lambda表达式2 void 类型的函数,没有返回值3 可以有参数,也可以重载4 不仅有声明,还得有实现场景:下课了,老师说他饿了,学生就请吃饭信号发送者:老师信号:老师饿了信号接收者:学生槽:请吃饭
创多少个类:Teacher Student
信号: hungry 1个 Teacher
槽:treat 1个 Student 带参数的自定义信号和槽,就声明函数的时候就带上参数就行
老师说他饿了,说要吃黄焖鸡,学生就请吃黄焖鸡调用带参数的信号函数 emit pTeacher->hungry("黄焖鸡");参数二义性问题:1 使用函数指针赋值,让编译器自动挑选符合类型的函数2 使用static_cast 强制转换 ,让编译器自动挑选符合类型的函数
12 信号和槽的拓展
1 一个信号可以连接多个槽一个信号建立了多个connect那么当信号发射的时候,槽函数的调用顺序:随机
2 一个槽可以连接多个信号3 信号可以连接信号connect(第一个信号发送者,第一个信号,第二个信号发送者,第二个信号)4 信号可以断开连接,disconnectconnect 参数怎么填,disconnect就怎么填5 信号和槽的参数关系,必须同时满足以下两点1 信号和槽函数的参数类型必须对应2 信号和槽函数的参数个数不需要一致,信号函数参数个数>=槽函数参数个数hungry(QString) -> treat() okhungry(QString) -> treat(int) 编译出错hungry(QString,int) -> treat(int) 编译出错
13 Qt4 的信号和槽
使用两个宏 SIGNAL 、 SLOT
connect使用不一样,信号和槽函数声明差不多connect(信号发送者,SIGNAL(函数原型) ,信号接收者,SLOT(函数原型))好处:没有重载二义性的问题
坏处:写错了,编译期间不报错SIGNAL和SLOT宏的原理,就是将后边的参数转成字符串 类似 #define toStr(arg) #arg -> "arg"推荐:以后都用qt5的
14 QDebug
qdeubg输出QString默认会转义//解决方法两个
//1 将QString转成 char *
//qDebug()<<"Student treat teacher with "<<what.toUtf8().data();//2 使用qDebug().noquote()
qDebug().noquote()<<"Student treat teacher with "<<what;
15 lambda表达式
[capture](parameters) opt ->retType
{
……;
}[capture] 捕获外部局部变量的列表,值传递,直接填变量名 ,引用传递就使用&变量名使用= 值传递捕获所有局部变量使用& 应用传递捕获所有局部变量有特殊的捕获方式的变量在后边另外指定如果是值传递捕获进来的变量默认是const , 需要修改的话要使用 mutable选项
返回值类型可以省略,编译器自动计算返回值以后都推荐使用 [=](){} 的形式
相关文章:
qt 的基础学习计划列表
1 第一天 (qt 的基础) 什么是qt hello程序,空窗口 添加按钮(对象树、父子关系) 按钮的功能(信号和槽) 信号和槽的拓展2 第二天 各个控件 最简单的记事本界面(菜单栏、状态栏、工具…...
CSS中如何改变鼠标指针样式(cursor)?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS中改变鼠标指针样式(cursor)⭐ 示例:⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅…...
SpringMVC-2-Spring MVC拦截器详解:从入门到精通
SpringMVC-2-Spring MVC拦截器详解:从入门到精通 今日目标 能够编写拦截器并配置拦截器 1.拦截器【理解】 1 拦截器介绍 1.1 拦截器概念和作用 拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方…...
探索AIGC人工智能(Midjourney篇)(一)
文章目录 案例图片 Midjourney注册 创建Discord账号 下载客户端 添加Midjourney到自己的服务器 用Midjourney画一只会飞的鸭子 Midjourney绘画指令 Midjourney绘画指令_激发Midjourney的创造力 Midjourney绘画指令_Seed指令 Midjourney光线关键词,打造震撼…...
【IMX6ULL驱动开发学习】11.Linux之SPI驱动
参考:驱动程序开发:SPI设备驱动_spi驱动_邓家文007的博客-CSDN博客 目录 一、SPI驱动简介 1.1 SPI架构概述 1.2 SPI适配器(控制器)数据结构 1.2 SPI设备数据结构 1.3 SIP设备驱动 1.4 接口函数 二、SPI驱动模板 一、SPI驱动…...
什么是网络中的服务质量 (QoS),其相关技术和关键指标有哪些?
QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来…...
Django(4)-Django 管理页面
创建一个管理员账号 python manage.py createsuperuser运行项目,访问http://127.0.0.1:8080/admin,可以看到管理员界面 管理页面加上投票应用 polls/admin.py from django.contrib import admin# Register your models here. from .models import …...
js的使用之时间如何定义,窗口加载事件
1.时间如何定义 1.1 date的其他的属性 带出星期几的写法 var arr [星期日,星期一,星期二,星期三,星期四,星期五,星期六,星期天] var day date.getDay(); console.log(arr[day]); 1.2 日期的格式化 1.3 时分秒的写法 固定写法:如果想要写成00:00:00这种形式&am…...
会声会影2023全新中文专业版下载安装教程
熟练使用会声会影视频编辑工具,对视频创作过程的帮助是极大的。大家可以放心大胆地去研究会声会影的视频编辑技巧,会声会影2023与以往版本会声会影版本最大的区别是:账户制管理。可以通过账户添加或移除设备,非常便捷。该软件一直…...
excel处理公式获得最终值--------------gxl
/*** 读取单元格内容 包括计算公式的结果,引用公式的结果* param cell* return*/public static String getCellValue(Cell cell){System.out.println(cell);String value null;if(cell ! null){System.out.println(cell.getCellType());switch (cell.getCellType()…...
变量函数及销毁函数中的变量-PHP8知识详解
今天分享php8知识详解中的变量函数及销毁函数中的变量,以及相应的示例代码。 1、变量函数 变量函数,是指通过变量来访问的函数。当变量后有圆括号时,PHP将自动寻找与变量的值同名的函数,然后执行该函数。 变量函数引用…...
Unity Alembic闪烁问题
最近在做项目时,发现Clo3D导出的服装abc动画,导入到Unity中后(已提前导入Alembic插件),运行时屏幕会闪烁(变黑)。 经过几轮测试,发现是切线的问题。解决办法很简单。将abc文件上的Tangents属性值改为None即可。...
结构型模式-适配器模式
适配器模式* 定义:适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口…...
数据结构:线性表之-顺序表
目录 1.线性表概念 1.1 什么是顺序列表 1.2 线性表 2.顺序表实现 将有以下功能: 详细过程 顺序表的动态存储 顺序表初始化 尾插 扩容 头插 更改后的尾插 尾删 头删 打印 释放内存 优化顺序表 (任意位置插入删除) 优化后的头插尾插 优化后的头删尾…...
请你说说json 序列化功能
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON基于JavaScript编程语言,是一种文本格式,完全独立于语言。 JSON序列化是将复杂的对象结构…...
Wireshark流量分析
目录 1.基本介绍 2.基本使用 1)数据包筛选: 2)筛选ip: 3)数据包还原 4)数据提取 3.wireshark实例 1.基本介绍 在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含…...
spring cloud整合spring boot,整合nacos、gateway、open-feign等组件
补充: 想看具体详情的可以看我的github链接:codeking01/platform-parent: spring cloud整合spring boot、nacos、gateway、open feign等组件 (github.com) 由于我升级了jdk17,所以用上了spring boot 3.0.2了。 踩坑无数,一堆无用文…...
大数据和人工智能之间如何的相互促进
文章目录 大数据为人工智能提供支持人工智能加速大数据的分析和应用紧密联系和合作方式综合效应:智能化决策和创新结论 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏&…...
基于互联网会计信息系统的内部控制
内部控制是指企业为保护资产安全、保证会计记录的正确性和可靠性、提高经 营管理效率、保障经营管理政策的执行而采取的全部方法和措施。内部控制可分为 一般控制和应用控制两类。一般控制是对会计信息系统环境的控制,应用控制则是 对系统运行过程的控制。显然&a…...
网络编程——套接字和字节序
目录 一、BSD套接字接口1.1 套接字类型1.2 套接字的位置 二、字节序2.1 大小端2.2 大小端判断2.3 主机字节序和网络字节序2.4 字节序转换函数 一、BSD套接字接口 BSD套接字接口是BSD的进程间通信的方式,它不仅支持各种形式的网络应用而且它还是一种进程间通信的机制…...
【网络安全】防火墙知识点全面图解(三)
本系列文章包含: 【网络安全】防火墙知识点全面图解(一)【网络安全】防火墙知识点全面图解(二)【网络安全】防火墙知识点全面图解(三) 防火墙知识点全面图解(三) 39、什…...
飞天使-k8s基础组件分析-配置和密钥管理
文章目录 configmap 详解configmap 使用案例secretk8s从私有库拉取镜像案例参考文档 configmap 详解 configmap的作用是什么? 答: pod 中的配置文件分离开来如何将配置文件中key 转换成configmap 呢? [rootk8s-01 chapter08]# cat ui.properties colo…...
QT使用QXlsx实现对Excel单元格和字体样式的相关操作 QT基础入门【Excel的操作】
准备:搭建环境引用头文件QT中使用QtXlsx库的三种方法 QT基础入门【Excel的操作】_吻等离子的博客-CSDN博客 #include "xlsxdocument.h"QTXLSX_USE_NAMESPACE // 添加Xlsx命名空间(https://github.com/dbzhang800/QtXlsxWriter) or QXLSX_USE_NAMESPACE // 添加X…...
酷炫JavaScript 技巧
1.检查元素是否在屏幕可见区域内 我们如何获得元素的点击率? 主要取决于用户点击元素的次数和元素在页面上显示的次数。 我们可以很容易地获取到用户的点击次数,但是如何获取一个元素的显示次数呢? 我们可以通过IntersectionObserver轻松…...
【FAQ】H.265视频无插件流媒体播放器EasyPlayer.js播放webrtc断流重连的异常修复
H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8&#…...
java八股文面试[JVM]——垃圾回收器
jvm结构总结 常见的垃圾回收器有哪些? CMS(Concurrent Mark Sweep) 整堆收集器: G1 由于整个过程中耗时最长的并发标记和并发清除过程中,收集器线程都可以与用户线程一起工作,所以总体上来说,…...
redis持久化机制 事务详解
目录 前言: 持久化机制 RDB(Redis DataBase) 手动触发 save bgsave 自动触发 RDB特点 AOF(append only file) 缓冲区刷新策略 重写机制 aof重写流程 混合持久化 事务 事务操作命令 WATCH WATCH实现原…...
java八股文面试[多线程]——有几种创建线程的方式
this逃逸问题:构造器中启动线程。 面试题: 用Thread和Runable创建线程的差别 一、Runnable和Thread的区别 继承性:Thread是一个类,因此如果继承Thread类,子类就不能再继承其他的类了,而实现Runnable接口…...
Desnet模型详解
模型介绍 DenseNet的主要思想是密集连接,它在卷积神经网络(CNN)中引入了密集块(Dense Block),在这些块中,每个层都与前面所有层直接连接。这种设计可以让信息更快速地传播,有助于解…...
clickhouse-压测
一、数据集准备 数据集可以使用官网数据集,也可以用ssb-dbgen来准备 1.准备数据 这里最后生成表的数据行数为60亿行,数据量为300G左右 git clone https://github.com/vadimtk/ssb-dbgen.git cd ssb-dbgen/ make1.1 生成数据 # -s 指生成多少G的数据…...
AI夏令营第三期用户新增挑战赛学习笔记
1、数据可视化 1.数据探索和理解:数据可视化可以帮助我们更好地理解数据集的特征、分布和关系。通过可视化数据,我们可以发现数据中的模式、异常值、缺失值等信息,从而更好地了解数据的特点和结构。2.特征工程:数据可视化可以帮助…...
pdf转ppt软件哪个好用?推荐一个好用的pdf转ppt软件
在日常工作和学习中,我们经常会遇到需要将PDF文件转换为PPT格式的情况。PDF格式的文件通常用于展示和保留文档的原始格式,而PPT格式则更适合用于演示和展示。为了满足这一需求,许多软件提供了PDF转PPT的功能,使我们能够方便地将PD…...
Linux 内核函数kallsyms_lookup_name
文章目录 一、API使用二、源码解析2.1 kallsyms_lookup_name2.2 kallsyms_expand_symbol2.3 kallsyms_sym_address2.3.1 x86_642.3.2 arm642.3.3 CONFIG_KALLSYMS_ABSOLUTE_PERCPU 参考资料 一、API使用 kallsyms_lookup_name 是一个内核函数,用于通过符号名称查找…...
强化学习在游戏AI中的应用与挑战
文章目录 1. 强化学习简介2. 强化学习在游戏AI中的应用2.1 游戏智能体训练2.2 游戏AI决策2.3 游戏测试和优化 3. 强化学习在游戏AI中的挑战3.1 探索与利用的平衡3.2 多样性的应对 4. 解决方法与展望4.1 深度强化学习4.2 奖励设计和函数逼近 5. 总结 🎉欢迎来到AIGC人…...
6 Python的异常处理
概述 在上一节,我们介绍了Python的面向对象编程,包括:类的定义、类的使用、类变量、实例变量、实例方法、类方法、静态方法、类的运算符重载、继承等内容。在这一节中,我们将介绍Python的异常处理。异常是指程序在运行过程中出现的…...
【跨语言通讯】
传统的跨语言通讯方案: 基于SOAP消息格式的WebService 基于JSON消息格式的RESTful 服务 主要弊端: XML体积太大,解析性能极差 JSON体积相对较小,解析相对较快,但表达能力较弱 如今比较流行的跨语言通讯方案&…...
Android 基础知识
一、Activity 1、onSaveInstanceState(),onRestoreInstanceState的调用时机 onSaveInstanceState 调用时机 从最近应用中选择运行其他程序时 但用户按下Home键时 屏幕方向切换时 按下电源案件时 从当前activity启动一个新的activity时 onRestorInstanceState调用时机 只…...
Linux常用命令_帮助命令、用户管理命令、压缩解压命令
文章目录 1. 帮助命令1.1 帮助命令:man1.2 帮助命令:help1.3 其他帮助命令 2. 用户管理命令2.1 用户管理命令: useradd2.2 用户管理命令: passwd2.3 用户管理命令: who2.4 用户管理命令: w 3. 压缩解压命令3.1 压缩解压命令: gzip3.2 压缩解压命令: gunzip3.3 压缩解压命令: ta…...
解决 KylinOS “Could not get lock /var/lib/dpkg/lock”错误
最近,我遇到了 “Could not get lock /var/lib/dpkg/lock”的错误,我既不能安装任何软件包,也不能更新系统。此错误也与“Could not get lock /var/lib/apt/lists/lock”错误密切相关。以下是 Ubuntu 20.04 上的一些样本输出。 Reading package lists… Done E: Could not…...
PHP pdf 自动填写表单
一、下载github上的项目,地址 二、下载pdftk 地址 // 转化PDF模板 pdftk modele.pdf output modele2.pdf# 填充pdf文件中的表单 require(fpdm.php); $fields array(name > My name,address > My address,city > My city,phone > My phone nu…...
Win2016Server绑定多网卡实现负载均衡
一、服务器端: 1、输入ncpa.cpl打开网络连接,对要绑定的网卡勾掉IPV4,IPV4地址选择自动 2、输入servermanager.exe,打开服务器管理器 3、在 [本地服务器] 中,点后边的 “已禁用” ,在 [适配器和接口] 小窗口…...
微软宣布在 Excel 中使用 Python:结合了 Python 的强大功能和 Excel 的灵活性。
文章目录 Excel 中的 Python 有何独特之处?1. Excel 中的 Python 是为分析师构建的。高级可视化机器学习、预测分析和预测数据清理 2. Excel 中的 Python 通过 Anaconda 展示了最好的 Python 分析功能。3. Excel 中的 Python 在 Microsoft 云上安全运行,…...
学习心得03:OpenCV
数学真是不可思议,不管什么东西,都能用数学来处理。OpenCV以前也接触过,这次是系统学习一下。 颜色模型 RGB,YUV,HSV,Lab,GRAY 颜色转换cvtColor()/convertTo(),通道分离split()&…...
ubuntu学习(五)----读取文件以及光标的移动
1、读取文件函数原型介绍 ssize_t read(int fd,void*buf,size_t count) 参数说明: fd: 是文件描述符 buf:为读出数据的缓冲区; count: 为每次读取的字节数(是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文…...
Python 数据分析——matplotlib 快速绘图
matplotlib采用面向对象的技术来实现,因此组成图表的各个元素都是对象,在编写较大的应用程序时通过面向对象的方式使用matplotlib将更加有效。但是使用这种面向对象的调用接口进行绘图比较烦琐,因此matplotlib还提供了快速绘图的pyplot模块。…...
uniapp小程序位置信息配置
uniapp 小程序获取当前位置信息报错 报错信息: getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json 需要在manifest.json配置文件中进行配置:...
《基于 Vue 组件库 的 Webpack5 配置》1.模式 Mode 和 vue-loader
一定要配置 模式 Mode,这里有个小知识点,环境变量 process.env.NODE_ENV module.exports {mode: production,// process.env.NODE_ENV 或 development, }一定要配置 vue-loader Vue Loader v15 现在需要配合一个 webpack 插件才能正确使用; …...
01.sqlite3学习——数据库概述
目录 重点概述总结 数据库标准介绍 什么是数据库? 数据库是如何存储数据的? 数据库是如何管理数据的? 数据库系统结构 常见关系型数据库管理系统 关系型数据库相关知识点 数据库与文件存储数据对比 重点概述总结 数据库可以理解为操…...
视频集中存储/云存储平台EasyCVR国标GB28181协议接入的报文交互数据包分析
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理…...
容器技术,1. Docker,2. Kubernetes(K8s):
目录 容器技术 1. Docker: 2. Kubernetes(K8s): Docker和Kubernetes 容器的主要应用场景有哪些? 容器技术 有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使…...