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

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

相关推荐
SilentSlot11 小时前
【QT-QML】5. 简单变换
qt·qml
军军君0111 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
青岑CTF11 小时前
攻防世界-Ics-05-胎教版wp
开发语言·安全·web安全·网络安全·php
Li emily11 小时前
如何通过外汇API平台快速实现实时数据接入?
开发语言·python·api·fastapi·美股
bylander11 小时前
【AI学习】TM Forum《Autonomous Networks Implementation Guide》快速理解
人工智能·学习·智能体·自动驾驶网络
kida_yuan11 小时前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记
xxxmine11 小时前
redis学习
数据库·redis·学习
laplace012312 小时前
Claude Skills 笔记整理
人工智能·笔记·agent·rag·skills
三块可乐两块冰12 小时前
【第二十八周】机器学习笔记二十九
笔记
APIshop12 小时前
Java 实战:调用 item_search_tmall 按关键词搜索天猫商品
java·开发语言·数据库