Qt学习日记 Day1:Qt核心机制+信号与槽基础
## 今天学了什么今天学习Qt核的心机制以及信号与槽基础。## Qt核心机制1.元对象系统定义Qt核心机制之一Qt基于C扩展实现的简易反射由moc编译期生成元对象信息表。用来实现信号槽、运行时类型识别、属性系统。前提类继承QObject Q_OBJECT宏。元对象用来描述子类的信息表由moc生成。常用宏1. Q_OBJECT总开关通知moc生成元对象代码2. Q_PROPERTY注册属性用于属性系统3. Q_CLASSINFO添加类静态备注信息4. Q_ENUM注册枚举实现枚举和字符串互转核心功能1. 信号与槽对象间通信2. 运行时类型识别qobject_cast、metaObject()-className()3. 属性系统运行时通过字符串读写属性对象树当创建的对象在堆区时若指定父类是QObject类派生下来的类或者QObject子类派生下来的类可以不用管理释放的操作对象会放入对象树中随父类一起释放父对象析构时会自动析构所有子对象。属性定义依托元对象系统把读写函数登记进元对象表对外暴露接口本身不储存数据数据存于普通成员变量。作用运行时通过字符串读写对象数据可配套NOTIFY信号数据变更时发射通知供QML、属性动画、QSS使用。2、事件循环定义Qt事件调度机制。a.exec()开启程序循环读取事件队列、分发事件给对应对象处理。作用管理事件队列处理鼠标、键盘、窗口重绘、定时器等事件。例1. 鼠标点击按钮 → 生成鼠标事件进入队列事件循环取出交给按钮处理2. QTimer定时器到时 → 产生定时器事件事件循环分发3. 关闭窗口 → 窗口关闭事件最后退出事件循环要点同线程信号槽直接函数调用不进事件队列跨线程信号槽依靠事件循环投递事件实现两者对比1. 元对象系统管信号槽、属性、类型识别。编译期moc生成信息表。2. 事件循环管事件调度分发。程序运行时持续循环处理事件队列。3. 关联跨线程信号槽依赖事件循环元对象是信号槽的底层基础。一句话区分元对象系统提供通信能力事件循环调度消息事件。## 信号与槽### 自定义信号规则信号发送者自定义头文件内写在signals 下返回值为void 只有声明不用实现可以用参数、可以有重载信号接受者既要声明也要实现可以用参数、可以有重载### 信号与槽的5种编码方式①Qt4写法;connectbtnSIGNALclicked()thisSLOTOnBtnClick()②函数指针写法connectbtnQPushbutton::clickedthisMainWindow::OnBtnClick③lambda写法connectbtnQPushbutton::clickedthis[](){ ....... }④UI 转到槽右键转到槽⑤UI 信号槽编辑器只能用Qt内置信号和槽在Designer图形界面绑定信号和槽【编辑】-【编辑信号/槽】### 当信号和槽函数有重载版本方法①用函数指针指向地址:void Teacher:: * teachSignalQstringTeacher:: hungryvoid Student: * studentSignalQstringStudent:: treatconnecttchteachSignalstustudentSignal方法②C14connecttchqOverloadQString(Teacher:: hungry)stuqOverloadQString(Student:: treat)### connect的第五个参数 Qt::ConnectionType作用指定信号触发后槽函数的调用方式枚举5个取值1.Qt::AutoConnection默认值发送者和接收者在同一个线程 → DirectConnection。发送者和接收者在不同线程 → QueuedConnection。2.Qt::DirectConnection发射信号时立刻同步执行槽函数。槽运行在发送者线程。3.Qt::QueuedConnection信号打包成事件加入接收者线程的事件队列。emit直接返回不阻塞。等接收者事件循环取出事件后再执行槽。4.Qt::BlockingQueuedConnection和QueuedConnection类似事件投递到接收者线程。发送线程阻塞直到槽执行完成才继续往下执行。不能在同线程使用会死锁。5.Qt::UniqueConnection不是独立连接模式是标记位一般配合前面类型用|组合。功能避免重复连接。同一个信号与接收对象多次connect只会绑定一次。例connect(sender, Sender::sig, receiver, Receiver::slot, Qt::AutoConnection | Qt::UniqueConnection);## 补充信号与槽特点信号可以连接信号/槽函数信号可以连接多个槽多个信号可以连接同一个槽信号和槽函数的参数类型必须相同信号和槽的参数个数信号的参数个数可以多于槽函数参数的个数反之不行

相关新闻

一体机软件说明书怎么写:从操作步骤到版本管理的实用指南

一体机软件说明书怎么写:从操作步骤到版本管理的实用指南

简介:这是一份面向停车场系统管理人员、运维工程师及集成商的一体机软件操作说明书,覆盖从数据库安装、停车场软件部署、系统参数配置到日常业务操作的完整闭环。资源包内仅含一个Word文档,大小约9.84MB,属于图文并茂、步骤拆解详…

2026/10/17 12:19:46 阅读更多 →
智能体经济:从信息连接到组织行动的底层逻辑与落地路径

智能体经济:从信息连接到组织行动的底层逻辑与落地路径

这两年我越来越强烈地感觉到一件事:互联网上半场解决的是"信息怎么找到人"的问题,而智能体经济要解决的是"人怎么把信息变成动作"的问题。我们刷到的文章、看过的数据、聊过的趋势,本质上都停在"连接信息"这一…

2026/10/17 12:18:46 阅读更多 →
内存频率显示不一致?从物理层到XMP的完整排查指南

内存频率显示不一致?从物理层到XMP的完整排查指南

1. 为什么跑分平台与我看到的内存频率始终对不上? 我自己排查内存问题的时候,遇到过很多次同一种现象:同一个平台,BIOS里写着3600,Windows任务管理器里显示2400,而第三方工具又读出一个3733。三个地方三个数…

2026/10/17 12:18:46 阅读更多 →

最新新闻

OpenClaw深度解析:从聊天到干活的AI Agent如何重塑自动化流程

OpenClaw深度解析:从聊天到干活的AI Agent如何重塑自动化流程

这两年“AI Agent”这个词快被说烂了,但真正能落地干活的并不多。市面上大多数产品还停留在“聊天机器人”的阶段——你问它答,最多帮你查个天气、写段文案,本质上还是一个更聪明的搜索引擎。但最近圈子里有一款叫 OpenClaw 的 Agent 讨论度很…

2026/10/17 18:50:12 阅读更多 →
GEE可视化与随机点缓冲区建立:投影与单位避坑指南

GEE可视化与随机点缓冲区建立:投影与单位避坑指南

说实话,第一次看到“Google Earth Engine(GEE)——可视化并缩放至指定级别和随机点缓冲区的建立”这个标题,我脑子里立刻跳出来一个非常具体的场景:某个区域调查项目里,我要在遥感影像上看清楚样点布设的可…

2026/10/17 18:50:12 阅读更多 →
头歌MySQL实训答案:从照抄到真正掌握SQL的完整指南

头歌MySQL实训答案:从照抄到真正掌握SQL的完整指南

简介:头歌MySQL数据库实训答案有目录.pdf是一份面向头歌平台MySQL数据库实训任务的通关答案汇总,专为正在刷题、补作业或复习数据库基础操作的高校学生与自学者设计,能够帮助读者快速理清实训关卡要求并完成验证。这份PDF以单个文件形式打包&…

2026/10/17 18:50:12 阅读更多 →
随机森林分类实战:从决策树原理到调参与避坑指南

随机森林分类实战:从决策树原理到调参与避坑指南

简介:这是一份面向机器学习学习者的随机森林分类算法系统讲解资料,以PDF格式梳理集成学习(Bagging)框架下随机森林的核心思想,包括有放回自助采样、随机特征子集选择、多棵决策树投票集成等机制,并对比其优…

2026/10/17 18:50:12 阅读更多 →
PyCharm配置Python环境:解释器、虚拟环境与PATH实战指南

PyCharm配置Python环境:解释器、虚拟环境与PATH实战指南

简介:本资源是一份面向Python初学者与PyCharm新用户的实操型配置指南,聚焦解决“如何在PyCharm中正确配置Python解释器及第三方库”这一关键入门问题,适用于课程实训、自学搭建开发环境或项目初始化阶段。文档以清晰步骤拆解核心流程&#xf…

2026/10/17 18:50:12 阅读更多 →
云计算ETF领涨背后:算力需求、资金轮动与指数机制的深度拆解

云计算ETF领涨背后:算力需求、资金轮动与指数机制的深度拆解

最近一段时间,只要盯盘超过十分钟,很难不注意到云计算ETF的动静。盘面上,跟踪云计算主题指数的场内基金连续放量,价格一步一个台阶往上抬,在多数行业板块里显得特别扎眼。我也把这类行情的走势、成交额和资金数据来回看…

2026/10/17 18:49:11 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →