kanzi API案例

背景:kanzi的帮助文档都是api简单含义,很少有案例的说明。每一次使用API都是一个摸索的过程。记录一下用到的API案例。

1. 按钮事件

界面有一个按钮,点击后C++处理对应的事件

void MyKanzi::onProjectLoaded() {
Button2DSharedPtr button2D_switch= getScreen()->lookupNode<Button2D>("/RootPage/Grid Layout 2D/Stack Layout 2D/Button");
button2D_switch->addMessageHandler(Button2D::PressedMessage, bind(&MyKanzi::onBtnSwitchClicked, this, std::placeholders::_1));
}void MyKanzi::onBtnSwitchClicked(ButtonConcept::PressedMessageArguments& messageArguments)
{(void)messageArguments;std::cout << __FUNCTION__ << "\n";
}

说明:

  1. onProjectLoaded里找到按钮对象,添加消息处理,可以把按钮路径换成别名
  2. 在处理函数onBtnSwitchClicke里添加业务逻辑

2. 查找节点

  1. getScreen()对应根节点Screen
  2. getRoot()对应根节点Screen/RootPage
Node2DSharedPtr test = getScreen()->lookupNode<Node2D>("/RootPage/Empty Node 2D");
Node2DSharedPtr test = getRoot()->lookupNode<Node2D>("/RootPage/Empty Node 2D");
Node2DSharedPtr test2 = getScreen()->lookupNode<Node2D>("/#Empty Node 2D_1");

说明:
3. lookupNode会递归查找子节点对象

3. 动态创建图片节点

  1. 找到一个父节点
Node2DSharedPtr test = getRoot()->lookupNode<Node2D>("/RootPage/Empty Node 2D");
  1. 创建图片节点
Image2DSharedPtr img = Image2D::create(getDomain(), "img");
  1. 创建纹理资源
TextureSharedPtr t = dynamic_pointer_cast<Texture>(getResourceManager()->acquireResource("kzb://untitledkanzisimulate/Textures/Default Texture"));         
  1. 为图片节点设置纹理
img->setImage(t);
  1. 添加子节点
test->addChild(img);

4. kanzi导出kza,kza转kzb

kanzi->edit->User Preferences
勾选kza选项
在这里插入图片描述
正常导出kzb时候,会同时生成kza
在这里插入图片描述
kza是xml结构,可以读写。
kza2kzb.exe命令可以把kza转为kzb

"D:\Program Files\Rightware\Kanzi 3_6_10_170\Studio\Bin\kza2kzb.exe" untitledkanzisimulate.kza untitled.kzb

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP地址修改步骤详解

IP地址是网络设备在网络中的标识&#xff0c;它决定了设备在网络中的位置与可访问性。然而&#xff0c;在某些情况下&#xff0c;我们可能需要修改IP地址&#xff0c;以满足特定的网络需求或解决网络问题。虎观代理将详细介绍IP地址的修改步骤&#xff0c;帮助读者更好地理解和…

python爬虫-------urllib代理和代理池(第十七天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

MongoDB爬虫:(某扑)实战

https://bbs.hupu.com/bxj网页地址: https://bbs.hupu.com/bxj 然后我们在网页上定义帖子名称、帖子链接、创建时间、回复数、最后回复用户...... 除此之外,我们发现虎扑步行街最多显示的页数(20): 、 当我们打开第3页的时候,网页的URL的地址变为了:https://bbs.hupu.…

python入门(一)配置环境和选择IDE

Python&#xff0c;作为一种简洁易懂的编程语言&#xff0c;近年来在全球范围内受到了广泛的关注和追捧。它不仅语法简单明了&#xff0c;易于上手&#xff0c;而且拥有强大的第三方库和广泛的应用领域。从数据分析、机器学习到Web开发&#xff0c;Python都能发挥出色的性能&am…

MySQL-进阶篇-基础架构:一条sql语句是如何执行的

摘自&#xff1a;01 | 基础架构&#xff1a;一条SQL查询语句是如何执行的&#xff1f;-MySQL实战45讲-极客时间 视频讲解&#xff1a;7分钟精通MySql中SQL执行原理_哔哩哔哩_bilibili 可结合学习&#xff0c;本文仅记录SQL语句的执行流程&#xff0c;以上内容有一些额外知识未…

自动化测试selenium(2)

目录 WebDriver介绍 WebDriver使用 使用WebDriver驱动操作浏览器(打开一个百度) WebDriver 相关API 定位元素 操作元素 上一篇主要介绍了自动化测试的概念以及selenium的基本原理, 这里我们来讲一下如何利用selenium来写测试用的脚本. WebDriver介绍 Selenium是一个用于…

JetBrains PhpStorm 2024.1 发布 - 高效智能的 PHP IDE

JetBrains PhpStorm 2024.1 发布 - 高效智能的 PHP IDE 请访问原文链接&#xff1a;JetBrains PhpStorm 2024.1 (macOS, Linux, Windows) - 高效智能的 PHP IDE&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org JetBrains PhpSt…

算法—分治

分而治之:指的是当主问题可以被分解为一个相同次级问题加相同基本问题时&#xff0c;采用这种思想&#xff0c;基本问题指问题规模最小时的情况&#xff0c;次级问题是指主问题的n级降低n-1级的问题。 具体实现&#xff1a;多数采用递归操作分解&#xff0c;然后递归操作&#…

Harmony鸿蒙南向外设驱动开发-Audio

Audio驱动概述 多媒体系统是物联网设备开发中不可缺少的一部分&#xff0c;Audio作为其中重要的一个模块&#xff0c;Audio驱动模型的构建显得尤为重要。 本文主要介绍基于HDF&#xff08;Hardware Driver Foundation&#xff09;驱动框架开发的Audio驱动&#xff0c;包括Aud…

【数据结构(五)】栈

❣博主主页: 33的博客❣ ▶️文章专栏分类:数据结构◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你学更多数据结构知识 目录 1.前言2.概念3.栈的使用4.栈的应用场景4.1有效的括号4.2逆波兰表达式4.3栈的压入弹…

分布式系统接口限流方案

Git地址&#xff1a;https://gitee.com/deepjava/test-api-limit.git 方案一、 Guava工具包 实现单机版限流 具体代码见git 方案二、Redis lua脚本 实现分布式系统的接口限流 具体代码见git

AI虽强,搜索引擎仍不可或缺

AI 领域正以前所未有的速度发展&#xff0c;大模型的发布变得愈发频繁&#xff0c;模型的规模也在持续扩大。如今&#xff0c;大模型的起点已经攀升至数十亿参数&#xff08;数十 B&#xff0c;B 是 Billion 的简写&#xff0c;10 亿&#xff09;&#xff0c;其功能之广泛&…