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的进程间通信的方式,它不仅支持各种形式的网络应用而且它还是一种进程间通信的机制…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...
游戏开发中常见的战斗数值英文缩写对照表
游戏开发中常见的战斗数值英文缩写对照表 基础属性(Basic Attributes) 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...
AWS vs 阿里云:功能、服务与性能对比指南
在云计算领域,Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商,各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5],我将从功能、服务和性能三个方面进行结构化对比分析&#…...
