aardio - 升级bindConfig函数,支持多属性和多子组件

news2024/12/26 11:47:10

一、需求分析

aardio的 winform.bindConfig() 函数,绑定后,一个组件,只能保存一个属性。

有时候需要同时保存多个属性,比如一个comobox组件,需要保存项目列表,同时保存当前选中的项目索引。当前这个bindConfig() 函数是无法实现的。

所以,有这个需求,就进行了相应的函数升级。

函数升级后,可以支持一个组件绑定多个属性,同时绑定多个子组件,子组件也支持多个属性,但不再支持子子组件。

该函数封装为 godking 库中的 bindConfig() 函数。使用方法为:

import godking ;

godking.bindConfig ( ) ;

请到 http://chengxu.online → aardio资源下载 → 下载godking库(_.rar)

二、效果如下:

 三、函数使用说明

代码用法:

import godking;

godking.bindConfig(winform,"C:\Users\Administrator\Desktop\config\",{
    combobox = {"items","selIndex"};
    plus = {"left","top",edit={"left","width","text"},"checked"};
    trackbar = "pos";
} );


参数1:要保存的窗口对象。该窗口名,也将设为保存的配置文件名。

参数2:保存到的目标目录。

参数3:要保存的属性配置列表。

要保存的属性配置列表,表中成员格式为:

  • 组件名或组件类型 = 属性名; // 保存或读入单个属性名(同下)
  • 组件名或组件类型 = { 属性名 }; // 保存或读入单个属性名(同上)
  • 组件名或组件类型 = { 属性名1,属性名2,属性名3,… ,子组件名或类型={ 属性名1,属性名2,属性名3} }; // 按顺序保存或读入多个属性

注意:

1、最终保存到文件中的key,是组件名称,而不是组件类型。

2、子组件也是可以定义多个的。

3、组件属性读写顺序的重要性:比如combobox组件,先读写items,再读写selIndex,因为只有读入项目items后,才能保证正确的选择项目索引selIndex。

四、测试代码

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=479;bottom=279)
winform.add(
button={cls="button";text="添加项目";left=330;top=100;right=410;bottom=130;z=3};
checkbox1={cls="checkbox";text="Checkbox1";left=120;top=60;right=200;bottom=80;z=4};
checkbox2={cls="checkbox";text="Checkbox2";left=210;top=60;right=290;bottom=80;z=5};
combobox={cls="combobox";left=120;top=100;right=320;bottom=126;edge=1;items={'"123"';'"456"';'"789"'};mode="dropdown";z=1};
trackbar={cls="trackbar";left=110;top=140;right=380;bottom=170;max=100;min=0;z=2}
)
/*}}*/

import godking
godking.bindConfig( winform, "d:\", {
	checkbox = "checked";
	combobox = { "items", "selIndex" };
	trackbar = "pos",
	checkbox = "checked",
});

winform.button.oncommand = function(id,event){
	winform.combobox.add("哈哈哈哈")
}

winform.show();
win.loopMessage();

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第十八天二叉树 java : .106 从中序与后序遍历序列构造二叉树113. 路径总和ii 112 路径总和 513.找树左下角的值

文章目录前言LeetCode 513.找树左下角的值题目讲解思路那么如何找最左边的呢?Leetcode 112 路径总和题目讲解LeetCode 113. 路径总和ii题目讲解Leetcode 106 从中序与后序遍历序列构造二叉树题目讲解前言 人的不幸在于他们不想走自己的那条路,总想走别人…

大数据必学Java基础(一百二十四):Maven的常见插件

文章目录 Maven的常见插件 一、编辑器插件 二、资源拷贝插件 三、tomcat插件 Maven的常见插件

Dubbo 服务暴露

Dubbo 服务暴露 1. 服务暴露时序图 2. 源码分析 DubboBootstrap.exportServices 从配置管理器中获取到所有的ServiceConfig实例,遍历,然后一个一个的暴露。 ServiceConfig.export 如果DubboBootstrap为空,也就没有初始化,就初…

猴子都能看懂的噪声(noise)专题

背景 除了生成各种奇形怪状与自然景观,噪声也有其他美妙的用途! 工作原因,经常接触与噪声相关的画面效果(火焰啊,画面扰动啊之类的),做的时候一知半解,傻傻分不清楚各种形态的nois…

Java文件:XWPFDocument导出Word文档

文章目录一、前言二、基本的概念三、Maven依赖(JAR)四、Word模板1.正文段落2.正文表格3.页眉4.页脚五、XWPFDocument的使用5.4导出Word文档1.word模板2.PdfTest测试类3.ISystemFileService接口4.SystemFileServiceImpl实现类5.结果六、遇到问题5.1输出为word的时候换行符无效一…

NR5G基础概念扫盲

文章目录前言BWP未完待续前言 随着人工智能、万物互联时代的到来,人类社会进入到一个新的阶段。新兴的科技产业对信息社会基础设施提出了更高的要求,对低时延、大带宽、高流量的需求,催生了5G技术,并推动其蓬勃发展。通信&#x…

【深入浅出XML】包装纯粹信息的标记语言

XMLXML的定义和概述🎶XML的定义🎶XML的最好描述🎶HTML和XML的重要区别🎶XML的文档结构🎶其他一些标记XML和优势🎶XML的优势XML解析🎶DOM解析❔解析测试🤞解析步骤🤞案例测…

在Windows部署Java的Jar包

背景 使用 Java 编写了一些有用的工具,因为不方便部署到服务器上,所以需要把 Java 生成的 jar 包在本地 Windows 上部署。 查阅了几种部署方式,认为通过 winsw 进行部署最方便。 安装 winsw 进入 winsw 的下载页面,下载 sampl…

【ROS2 入门】ROS 2 参数服务器(parameters)概述

大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,在上一篇中,我们一起了解ROS 2中Topic, 这一篇,我们主要会围绕ROS中另外一个重要的概念“Parameters ”&am…

图的拓扑排序(AOV网络)

文章目录拓扑排序概念实现邻接表(队列)邻接矩阵(栈)总结源代码邻接表邻接矩阵拓扑排序 概念 拓扑排序是对有向无环图的顶点的一种排序. AOV网络 : 在有向图中, 用顶点表示活动或者任务, 弧表示活动或者任务间的优先关系, 则此有向图称为用顶点表示活动的网络(Activity On Ve…

小程序介绍和注册安装

小程序介绍和注册安装微信小程序介绍小程序特点其它平台小程序注册微信小程序开发帐号获取appidappid简介微信开发者工具安装创建一个小程序项目核心步骤微信开发者工具构成微信小程序介绍 简短定义:微信小程序是运行在微信APP中的一个程序。 常见小程序 行程码拼…

UDS诊断系列介绍11-3E服务

本文框架1. 系列介绍1.1 3E服务概述2. 3E服务请求与应答2.1 3E服务请求2.2 3E服务正响应2.3 3E服务否定响应3. Autosar系列文章快速链接1. 系列介绍 UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的…

# 【笔记】大话设计模式21-23

【笔记】大话设计模式21-23 文章目录【笔记】大话设计模式21-23单例模式21.1 Example21.2 定义21.3 Show me the code一般单例代码(**懒汉模式**)静态初始化(**饿汉模式**)21.4 总结22 桥接模式22.1 Example22.2 定义22.3 Show me the code22.4 总结23 命…

Code for VeLO 1: Training Versatile Learned Optimizers by Scaling Up

Code for VeLO 1: Training Versatile Learned Optimizers by Scaling Up 这篇文章将介绍一下怎么用VeLO进行训练。 这篇文章基于https://colab.research.google.com/drive/1-ms12IypE-EdDSNjhFMdRdBbMnH94zpH#scrollToRQBACAPQZyB-,将介绍使用learned optimizer in…

入门力扣自学笔记230 C++ (题目编号:2293)

2293. 极大极小游戏 题目: 给你一个下标从 0 开始的整数数组 nums ,其长度是 2 的幂。 对 nums 执行下述算法: 设 n 等于 nums 的长度,如果 n 1 ,终止 算法过程。否则,创建 一个新的整数数组 newNums …

【Python百日进阶-数据分析】Day226 - plotly的仪表盘go.Indicator()

文章目录一、语法二、参数三、返回值四、实例4.1 Bullet Charts子弹图4.1.1 基本子弹图4.1.2 添加步骤和阈值4.1.3 自定义子弹4.1.4 多子弹4.2 径向仪表图4.2.1 基本仪表4.2.2 添加步骤、阈值和增量4.2.3 自定义仪表图4.3 组合仪表图4.3.1 组合仪表图4.3.2 单角量规图4.3.3 子弹…

Android 深入系统完全讲解(19)

技术的学习关键点 是什么?思路。 而我这里分享一个学习的经典路线,先厘清总框架,找到思路,然后再逐步击破。 这里关于音视频的就是: 总体分为几部分: 1 绘制 2 编解码格式 3 Android 平台的 FFmpeg 开源移…

Compressed Sensing——从零开始压缩感知

Problem 考虑一个线性方程组求解问题: Axb(1)A x b \tag{1}Axb(1) 其中,A∈RmnA \in\mathbb R^{m\times n}A∈Rmn,x∈Rn1x \in\mathbb R^{n\times 1}x∈Rn1,b∈Rm1b \in\mathbb R^{m\times 1}b∈Rm1且m≪nm \ll nm≪n 这是一个…

【C++11】—— lambda表达式

目录 一、lambda表达式的简介 二、lambda表达式的基本语法 三、lambda表达式的使用方法 四、lambda表达式的底层原理 一、lambda表达式的简介 lambda表达式就类似于仿函数,相比仿函数要更加的简洁,我们看一下下面的代码: //商品类 struct…

【项目实战】使用MybatisPlus乐观锁插件功能

一、背景 当要更新一条记录时,希望这条记录没有被别人更新,可以考虑使用MybatisPlus乐观锁插件功能来实现以上需求。 二、乐观锁介绍 2.1 乐观锁是什么? 乐观锁是一种乐观思想,即认为读多写少,遇到并发的可能性低&…