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

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

相关推荐
JienDa4 小时前
JienDa聊PHP:小红书仿站实战深度架构全解析
开发语言·架构·php
执笔论英雄8 小时前
Slime异步原理(单例设计模式)4
开发语言·python·设计模式
('-')10 小时前
《从根上理解MySQL是怎样运行的》第十章学习笔记
笔记·学习·mysql
e***749510 小时前
Modbus报文详解
服务器·开发语言·php
hd51cc10 小时前
MFC学习笔记 对话框
笔记·学习·mfc
lly20240610 小时前
ASP 发送电子邮件详解
开发语言
小徐敲java10 小时前
python使用s7协议与plc进行数据通讯(HslCommunication模拟)
开发语言·python
likuolei10 小时前
XSL-FO 软件
java·开发语言·前端·数据库
6***379410 小时前
PHP在电商中的BigCommerce
开发语言·php
Dev7z10 小时前
基于Matlab的多制式条形码识别与图形界面(GUI)系统设计与实现
开发语言·matlab