QML学习笔记(十九)QML的附加信号处理器

前言

本节我们将学习附加信号处理器。实际上,我们此前的学习中已经接触过了,Component就是其中之一。

一、什么是"附加信号处理器"(Attached Signal Handler)

  1. 不是 由当前元素自身发出的信号,而是由另一个"附加类型"(Component、Keys、ListView ...)附加到当前元素后,再向当前元素发出的信号。
  2. 语法模板:
    <AttachingType>.on<SignalName>: { ... }
    例子:
    Component.onCompleted: { }
    Keys.onReturnPressed: { }
  3. 附加类型由 Qt 在解析 QML 时自动创建并绑定,我们只需写出处理器即可使用。

二、Component 这一附加类型提供的常用信号

  • completed() ------ 组件实例化完成后触发(类似构造函数)
  • destruction() ------ 组件开始销毁 前触发(类似析构函数)
    使用位置:任何继承自 Item 的对象体内,写
    Component.onCompleted: { }
    Component.onDestruction: { }

三、代码实现

我们在上一节的工程中实现一下这两个信号的处理器。

cpp 复制代码
    Component.onCompleted: {
        console.log("Starting up...")
    }
    
    Component.onDestruction: {
        console.log("App is dying")
    }

运行代码:

关闭窗口:

符合预期!

四、总结

既然Component涉及到构造和析构,你应该就知道它的意义。这将在组件完成加载和需要销毁时,给你提供业务代码入口。你可以在组建加载完毕后实现一些网络获取相关的功能,也可以在销毁时进行数据保存等等。

这将在之后的学习中经常用到哦。

相关推荐
blasit21 分钟前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1235 天前
matlab画图工具
开发语言·matlab
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
dustcell.5 天前
haproxy七层代理
java·开发语言·前端
norlan_jame5 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone5 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
修炼前端秘籍的小帅5 天前
Stitch——Google热门的免费AI UI设计工具
前端·人工智能·ui
QQ4022054965 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
starlaky5 天前
Django入门笔记
笔记·django