【QML COOK】- 007-Item对象、信号和槽

信号(signal)和槽(slot)是Qt的独特的设计,自然在QML中也被支持。

Item是QML所有类型的基类,Item类型不会显示在窗口上,但是可以支持信号和槽。本节就用Item编写一个信号和槽的实例。

1. 创建Qt Quick并编辑Main.qml

import QtQuick

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    MouseArea {
        anchors.fill: parent
        onClicked: {
            sender.something("haha")
        }
    }

    Item {
        id: sender
        signal something(message : string)
        onSomething: (message) =>  {
                        console.log("Something happened(sender):", message)
                     }
    }

    Item {
        id: receiver

        Connections {
            target: sender
            function onSomething(message : string) {
               console.log("Something happened(receiver):", message)
            }
        }
    }
}
  • 代码中创建了两个Item对象,一个id为sender,另一个为receiver。
  • sender里定义了一个信号something
  • 在QML中如果一个对应定义了一个信号XXX,QML就会自动给它添加一个名为onXXX的槽属性。该属性的值是一个Javascript方法。当收到信号XXX时,onXXX对应的Javascript代码就会被调用。
  • 如果想在另一个对象中接收信号,就必须在对象中创建一个Connections类型的对象。Connections的target属性值为信号发射对象的id。想接收哪个信号就定义一个onXXX的Javascript方法,当target对象发射信号后,onXXX方法就会被调用。
  • 我在MouseArea中通过sender.something("haha")发射信号。

2. 运行程序

  • 在窗口上点击便可以在Qt Creator的输出窗口看到如上Log。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/313608.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot注解@EnableConfigurationProperties和@ConfigurationProperties关系和作用

目录 EnableConfigurationProperties和ConfigurationProperties关系是什么? 简介 ConfigurationProperties EnableConfigurationProperties 二者之间的联系 总结 EnableConfigurationProperties和ConfigurationProperties关系是什么? 其实我能明白…

电脑/设备网络共享给其他设备上网

文章目录 一、概述二、设置网络共享2.1 电脑可以上网,通过网络共享让其他设备也可以上网2.2 手机如何使用USB数据线共享网络给电脑 一、概述 现在有如下几种情况: 设备本身不能上网,需要通过电脑上网 笔记本WIFI连热点上网,然后…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷①

单元测试 一、任务要求 题目1:根据下列流程图编写程序实现相应分析处理并显示结果。返回文字“xa*a*b的值:”和x的值;返回文字“xa-b的值:”和x的值;返回文字“xab的值:”和x的值。其中变量a、b均须为整型…

记录一下误删除libc.so.6的经历

起因: 在配置环境时,出现’GLIBCXX_3.4.29 not found’的错误,在解决这个问题的过程中,需要删除sudo rm /usr/lib/x86_64-linux-gnu/libstdc.so.6软连接,但是一不小心sudo rm /lib/x86_64-linux-gpu/libc.so.6&#xf…

第二百五十九回

文章目录 知识回顾示例代码经验总结 我们在上一章回中介绍了MethodChannel的使用方法,本章回中将介绍EventChannel的使用方法.闲话休提,让我们一起Talk Flutter吧。 知识回顾 我们在前面章回中介绍了通道的概念和作用,并且提到了通道有不同的…

VSCode使用技巧

选择python 解释器 使用快捷键CtrlShiftP Python: Select Interpreter快捷键 返回上一次光标的位置 重新设置一下 navigate

可以打印试卷的软件有哪些?推荐这几款

可以打印试卷的软件有哪些?随着科技的飞速发展,越来越多的学习工具如雨后春笋般涌现,其中,能够打印试卷的软件尤其受到广大学生和家长的青睐。这些软件不仅方便快捷,而且内容丰富,可以满足不同学科、不同年…

BUUCTF--get_started_3dsctf_20161

这题我本来以为是简单的ret2text.结果还是中了小坑。 先看保护: 32位程序,接下来测试下效果: 看看IDA中逻辑: 题目一进来有很多函数,盲猜是静态编译了。而且在函数堆中发现了个get_flag。信心慢慢的直接写代码返回get…

如何进行有竞争力的SEO审计以超越行业竞争对手

许多营销人员都有兴趣密切关注竞争对手的搜索引擎优化 (SEO)。这是有道理的——无论你是刚开始做SEO,还是已经做了一段时间,你都希望对搜索引擎结果页面(SERP)的竞争格局有一个清晰的认识,这样你…

Fiddler工具 — 13.AutoResponder应用场景

简单介绍几个应用场景: 场景一:生产环境的请求重定向到本地文件,验证结果。 例如:某网站或者系统修改了问题,但尚未更新到生产环境,可重定向到本地修改后的文件进行验证,这样能够避免更新到生产…

【AI视野·今日Robot 机器人论文速览 第七十四期】Wed, 10 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 10 Jan 2024 Totally 17 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Hold em and Fold em: Towards Human-scale, Feedback-Controlled Soft Origami Robots Authors Immanuel Ampomah Mensah, Je…

中科院国产多语言大模型-YAYI2开源!家族AI应用场景全覆盖!

项目简介 YAYI 2 是中科闻歌研发的新一代开源大语言模型,中文名:雅意,采用了超过 2 万亿 Tokens 的高质量、多语言语料进行预训练。 开源地址:https://github.com/wenge-research/YAYI2 YAYI2-30B是其模型规模,是基…

【C语言题解】 | 144. 二叉树的前序遍历

144. 二叉树的前序遍历 144. 二叉树的前序遍历代码 144. 二叉树的前序遍历 提示: 树中节点数目在范围 [0, 100] 内 函数原型: int* preorderTraversal(struct TreeNode* root, int* returnSize) {首先先观察一下这个函数原型,TreeNode* roo…

为什么要进行漏洞扫描工作

随着互联网的普及和信息技术的飞速发展,网络安全问题愈发引人关注。其中,漏洞扫描作为保障网络安全的重要手段,受到了广泛的关注和应用。本文将详细介绍漏洞扫描的概念、效果、使用场景等,以期为读者提供有关漏洞扫描的全面了解。…

01.坦克大战项目-Java绘图坐标体系

01. Java绘图 01. Java绘图坐标体系 1. 坐标体系介绍 ​ 下图说明了java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标系,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标表示…

电脑弹窗‘找不到msvcp120dll,无法继续执行代码’要怎么解决?快速修复msvcp120dll

当你的电脑弹窗‘找不到msvcp120dll,无法继续执行代码’,你是否一脸懵逼不知道要怎么去解决呢?其实这种dll丢失的问题还是比较常见的,所以我们遇到也不会担心,只要了解了,那么我们就可以轻松的修复msvcp120dl文件。下面…

C#实现Excel合并单元格数据导入数据集

目录 功能需求 Excel与DataSet的映射关系 范例运行环境 Excel DCOM 配置 设计实现 组件库引入 ​方法设计 返回值 参数设计 打开数据源并计算Sheets 拆分合并的单元格 创建DataTable 将单元格数据写入DataTable 总结 功能需求 将Excel里的worksheet表格导入到Da…

为什么企业容易陷入“自嗨式营销”,媒介盒子分析

互联网时代,各类信息都传播的非常快,同时信息技术的成熟也让许多企业可以监测广告效果,比如曝光、互动、转化等都可以通过数据体现,然而很多企业在营销过程中却发现,大部分的钱、精力、人力等都被浪费了。出现这种情况…

three.js 使用 tweenjs绘制相机运动动画

效果&#xff1a; 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div class"box-right"…

数据结构与算法:堆

数据结构与算法&#xff1a;堆 堆堆的定义堆的实现结构分析初始化向上调整算法向下调整算法堆的插入堆的删除得到堆顶元素判断堆是否为空 堆的应用TopK问题 堆 堆的定义 定义&#xff1a; 堆是一种数据结构&#xff0c;本质上是一个特殊的树结构&#xff0c;它是一个完全二叉…