当前位置: 首页 > news >正文

aardio - 虚表 —— 两个虚表之间互相拖动交换数据

插入到虚表末尾的方法: 

import win.ui;
import godking.vlistEx;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=849;bottom=578;border="thin")
mainForm.add(
radiobutton={cls="radiobutton";text="移动";left=768;top=8;right=848;bottom=40;checked=1;z=3};
radiobutton2={cls="radiobutton";text="复制";left=768;top=40;right=848;bottom=72;z=4};
vlist={cls="vlistEx";left=10;top=10;right=380;bottom=570;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=1};
vlistEx={cls="vlistEx";left=392;top=8;right=762;bottom=568;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=2}
)
/*}}*/mainForm.show();
var t = { fields={"序号","姓名","年龄","地址","身份证"} };
mainForm.vlistEx.setTable(..table.clone(t),,,1);
mainForm.vlistEx.onDragRow = true;
mainForm.vlistEx.onDragRowEnd = function(draglist/*要拖动的行号数组*/,dragtorow/*拖到的目标行号*/){import winex;import mouse;if ..winex.fromPoint(..mouse.getPos()) === mainForm.vlist.hwnd {for(i=1;#draglist;1){if mainForm.radiobutton.checked {mainForm.vlist.addRow(mainForm.vlistEx.getRowData(draglist[i]));} else {mainForm.vlist.addRow(..table.clone(mainForm.vlistEx.getRowData(draglist[i])));}}if mainForm.radiobutton.checked mainForm.vlistEx.delRow(draglist);mainForm.vlistEx.setSelected( /*行号*/);return ; }return true; 
}for(i=1;10;1){var tt={};tt["序号"]="[@rowindex]";tt["姓名"]=math.random(1000,9999)+"姓名";tt["年龄"]=math.random(10,99);tt["地址"]=math.random(1,9999999)+"地址";tt["身份证"]=math.random(1000,9999)+"身份证";..table.push(t,tt);
}mainForm.vlist.setTable(t,,,1);
mainForm.vlist.onDragRow = true;
mainForm.vlist.onDragRowEnd = function(draglist/*要拖动的行号数组*/,dragtorow/*拖到的目标行号*/){import winex;import mouse;if ..winex.fromPoint(..mouse.getPos()) === mainForm.vlistEx.hwnd {for(i=1;#draglist;1){if mainForm.radiobutton.checked {mainForm.vlistEx.addRow(mainForm.vlist.getRowData(draglist[i]));} else {mainForm.vlistEx.addRow(..table.clone(mainForm.vlist.getRowData(draglist[i])));}}if mainForm.radiobutton.checked mainForm.vlist.delRow(draglist);mainForm.vlist.setSelected( /*行号*/);return ; }return true; 
}win.loopMessage();

 插入到鼠标所在行位置的方法:

import win.ui;
import godking.vlistEx;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=849;bottom=578;border="thin")
mainForm.add(
radiobutton={cls="radiobutton";text="移动";left=768;top=8;right=848;bottom=40;checked=1;z=3};
radiobutton2={cls="radiobutton";text="复制";left=768;top=40;right=848;bottom=72;z=4};
vlist={cls="vlistEx";left=10;top=10;right=380;bottom=570;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=1};
vlistEx={cls="vlistEx";left=392;top=8;right=762;bottom=568;db=1;dl=1;dr=1;dt=1;edge=1;transparent=1;z=2}
)
/*}}*/
import winex;
import mouse;
mainForm.show();
var t = { fields={"序号","姓名","年龄","地址","身份证"} };
//设置右侧虚表
mainForm.vlistEx.setTable(..table.clone(t),,,1);
mainForm.vlistEx.onDragRow = true;
mainForm.vlistEx.onDragRowEnd = function(draglist/*要拖动的行号数组*/,dragtorow/*拖到的目标行号*/){var x,y = ..mouse.getPos();if ..winex.fromPoint(x,y) === mainForm.vlist.hwnd {var row = mainForm.vlist.hitTest(x,y,true):(mainForm.vlist.count+1);for(i=#draglist;1;-1){if mainForm.radiobutton.checked {mainForm.vlist.insertRow(row,mainForm.vlistEx.getRowData(draglist[i]));} else {mainForm.vlist.insertRow(row,..table.clone(mainForm.vlistEx.getRowData(draglist[i])));}}if mainForm.radiobutton.checked mainForm.vlistEx.delRow(draglist);mainForm.vlistEx.setSelected( /*行号*/);}return true; 
}
//生成左侧虚表初始数据
for(i=1;10;1){var tt={};tt["序号"]="[@rowindex]";tt["姓名"]=math.random(1000,9999)+"姓名";tt["年龄"]=math.random(10,99);tt["地址"]=math.random(1,9999999)+"地址";tt["身份证"]=math.random(1000,9999)+"身份证";..table.push(t,tt);
}
//设置左侧虚表
mainForm.vlist.setTable(t,,,1);
mainForm.vlist.onDragRow = true;
mainForm.vlist.onDragRowEnd = function(draglist/*要拖动的行号数组*/,dragtorow/*拖到的目标行号*/){var x,y = ..mouse.getPos();if ..winex.fromPoint(x,y) === mainForm.vlistEx.hwnd {var row = mainForm.vlistEx.hitTest(x,y,true):(mainForm.vlistEx.count+1);for(i=#draglist;1;-1){if mainForm.radiobutton.checked {mainForm.vlistEx.insertRow(row,mainForm.vlist.getRowData(draglist[i]));} else {mainForm.vlistEx.insertRow(row,..table.clone(mainForm.vlist.getRowData(draglist[i])));}}if mainForm.radiobutton.checked mainForm.vlist.delRow(draglist);mainForm.vlist.setSelected( /*行号*/);}return true; 
}win.loopMessage();

相关文章:

aardio - 虚表 —— 两个虚表之间互相拖动交换数据

插入到虚表末尾的方法: import win.ui; import godking.vlistEx; /*DSG{{*/ mainForm win.form(text"vlistEx - table adapter";right849;bottom578;border"thin") mainForm.add( radiobutton{cls"radiobutton";text"移动&qu…...

VScode 中文符号出现黄色方框的解决方法

VScode 中文符号出现黄色方框的解决方法 我的vscode的python多行注释中会将中文字符用黄色方框框处: 只需要打开设置搜索unicode,然后将这一项的勾选取消掉就可以了: 取消之后的效果如下: 另一种情况:中文显示出现黄色…...

LINUX网络基础 [二] - 网络编程套接字,UDP与TCP

目录 前言 一. 端口号的认识 1.1 端口号的作用 二. 初识TCP协议和UDP协议 2.1 TCP协议 TCP的特点 使用场景 2.2 UDP协议 UDP的特点 使用场景 2.3 TCP与UDP的对比 2.4 思考 2.5 总结 三. 网络字节序 3.1 网络字节序的介绍 3.2 网络字节序思考 四. socket接口 …...

Spring统一格式返回

目录 一:统一结果返回 1:统一结果返回写法 2:String类型报错问题 解决方法 二:统一异常返回 统一异常返回写法 三:总结 同志们,今天咱来讲一讲统一格式返回啊,也是好久没有讲过统一格式返…...

Unity多Pass渲染与GPU Instancing深度优化指南

一、技术背景与挑战 1. 多Pass渲染的定位 多Pass渲染策略通过单个Shader中定义多个渲染阶段(如阴影生成、光照计算、后处理等)实现复杂视觉效果,但传统实现会显著增加DrawCall数量。例如标准渲染管线中,一个物体可能经历Base Pa…...

Redis高频面试题10个

1. Redis 的特点及与 Memcached 的区别 特点: 基于内存的键值数据库,支持持久化(RDB/AOF)。 单线程模型,通过 IO 多路复用实现高并发。 支持多种数据结构:字符串、哈希、列表、集合、有序集合等。 提供…...

【数据库】MySQL常见聚合查询详解

在数据库操作中,聚合查询是非常重要的一部分。通过聚合查询,我们可以对数据进行汇总、统计和分析。MySQL提供了丰富的聚合函数来满足不同的需求。本文将详细介绍MySQL中常见的40个聚合函数及其使用场景,并通过8个的案例展示它们的用法。 一、…...

蓝桥备赛(11)- 数据结构、算法与STL

一、数据结构 1.1 什么是数据结构? 在计算机科学中,数据结构是一种 数据组织、管理和存储的格式。它是相互之间存在一种 或多种特定关系的数据元素的集合。 ---> 通俗点,数据结构就是数据的组织形式 , 研究数据是用什么方…...

Linux的系统ip管理

ip地址 命令:ifconfig 127.0.0.1这个ip地址用于指本机。 0.0.0.0特殊ip地址用于指代本机,可以在端口绑定中用来确定绑定关系,在一些ip地址限制中,表示所有ip的意思。如放行规则设置为0.0.0.0,表示允许任意ip访问。 …...

【决策树】分类属性的选择

文章目录 1.信息增益(ID3)2.信息增益率(C4.5)3.基尼指数(CART)ps.三者对比 实现决策树算法最关键的一点就是如何从所有的特征属性中选择一个最优的属性对样本进行分类,这种最优可以理解为希望划…...

uniapp vue3 微信小程序 uni.chooseLocation使用

申请 先要去微信公众平台申请使用接口 开通成功之后就可以在项目中配置使用了 配置 配置manifest.json "mp-weixin": {/* 小程序特有相关 */"requiredPrivateInfos": ["chooseLocation"],"permission": {"scope.userLocati…...

9. Flink的性能优化

1. Flink的资源和代码优化 1.1 slot资源配置 Flink中具体跑任务的进程叫TaskManager,TM进程又会根据配置划分出诺干个TaskSlot,它是具体运行SubTask的地方。slot是Flink用来隔离各个subtask的资源集合,这里的资源一把指内存,TCP…...

十二、OSG学习笔记-Control

上一章节: 十一、OSG学习笔记-操作系统接口-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/145891502 本章节代码: OsgStudy/Controls CuiQingCheng/OsgStudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/osg-study/tree/ma…...

集群、分布式与微服务架构 区别

集群、分布式与微服务架构:概念解析与核心差异 在构建现代软件系统时,集群架构、分布式系统和微服务架构是三种常见的技术方案。它们常被混淆,但各自解决的问题、设计理念和应用场景截然不同。本文将从基础概念出发,深入分析三者…...

如何使用SSH命令安全连接并转发端口到远程服务器

ssh -p 22546 rootconnect.westc.gpuhub.com d6IS/mQKq/iG ssh -CNgv -L 6006:127.0.0.1:6006 rootconnect.westc.gpuhub.com -p 22546 第一条命令:用于登录远程服务器,进行交互式操作。第二条命令:用于建立 SSH 隧道,进行端口转…...

【Java 基础】-- 设计模式

目录 Java 设计模式详解 1. 设计模式定义 2. 设计模式示例 2.1 单例模式(Singleton Pattern) 2.2 工厂模式(Factory Pattern) 2.3 观察者模式(Observer Pattern) 2.4 代理模式(Proxy Pat…...

ComfyUI进阶学习全指南(2025年最新版)

ComfyUI进阶学习全指南(2025年最新版) 一、自定义节点与扩展管理 1.1 自定义节点安装与维护 ComfyUI的核心竞争力在于其可扩展性。通过安装第三方节点模块,用户可实现超分辨率修复、骨骼绑定动画生成等高级功能。安装方式主要分为三种&…...

Linux和gcc/g++常用命令总结

目录 Linux命令总结 文件操作相关命令 ls cd pwd cp mv rm cat mkdir rmdir touch 文本处理操作命令 grep awk sed 进程管理操作相关命令 ps top htop kill pkill killall chmod chown 网络操作相关命令 ping ifconfig netstat ss lsof curl …...

uniapp封装路由管理(兼容Vue2和Vue3)

1:uniapp已经有路由管理了为什么还要二次封装路由? 简化配置和调用增强灵活性和可扩展性实现统一的功能和策略提升开发效率和团队协作 2. 增强灵活性和可扩展性 灵活配置:二次封装允许开发者根据实际需求灵活配置路由参数,如跳…...

π0源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司的部分落地实践

前言 ChatGPT出来后的两年多,也是我疯狂写博的两年多(年初deepseek更引爆了下),比如从创业起步时的15年到后来22年之间 每年2-6篇的,干到了23年30篇、24年65篇、25年前两月18篇,成了我在大模型和具身的原始技术积累 如今一转眼…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言: 类加载器 1. …...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

Element-Plus:popconfirm与tooltip一起使用不生效?

你们好&#xff0c;我是金金金。 场景 我正在使用Element-plus组件库当中的el-popconfirm和el-tooltip&#xff0c;产品要求是两个需要结合一起使用&#xff0c;也就是鼠标悬浮上去有提示文字&#xff0c;并且点击之后需要出现气泡确认框 代码 <el-popconfirm title"是…...