aardio —— 虚表 —— 使用ownerDrawCustom列类型制作喜马拉雅播放器列表

不会自绘也能做漂亮列表,你相信吗?

看看这个例子,虚表_vlistEx_ColType_OwnerDrawCustom列类型,移植自godking.customPlus,简单好用,做漂亮列表的大杀器,玩aardio必备利器!

请更新到最新版虚表V13.5以上,然后测试下面代码:

import win.ui;
import godking.vlistEx
import fonts.fontAwesome
/*DSG{{*/
var winform = win.form(text="aardio form";right=1071;bottom=671)
winform.add(
custom={cls="custom";text="自定义控件";left=392;top=8;right=1064;bottom=664;db=1;dl=1;dr=1;dt=1;z=2};
vlistEx={cls="vlistEx";text="自定义控件";left=8;top=8;right=384;bottom=664;db=1;dl=1;dt=1;z=1}
)
/*}}*/
winform.show();
//获取文章列表
var url = "https://www.ximalaya.com/revision/category/v2/albums?pageNum=1&pageSize=56&sort=1&categoryId=3"
import web.rest.jsonClient
var http = web.rest.jsonClient()
var itemList = http.get(url)[["data"]][["albums"]];
//多线程下载文章封面图片
for(i=1;#itemList;1){thread.invoke(function(row,winform,url){import inet.http;var pic = inet.http.get("http://imagev2.xmcdn.com/"++url);thread.lock("图片下载临界区");winform.vlistEx.addImg(url/*图片名称*/,pic/*图片文件*/,false/*是否替换*/,70/*宽度*/,70/*高度*/);winform.vlistEx.redrawRow(row);thread.unlock("图片下载临界区");},i,winform,itemList[i].albumCoverPath);
}
//创建webview组件
import web.view
var wb = web.view(winform.custom);
//定义表格_vlistEx_ColType_OwnerDrawCustom列模版
var itemModel = {{   /* 矩形元素定义 */type="rect",rectf={x=1;y=1;width=-1;height=-1},fillcolor=0xFFFFFFFF,itemhoverfillcolor=0xFFE6E6FA,},{   /* 图像元素定义 */type="img",name="logo", rectf={x=5;y=5;width=70;height=70}, scale=2,},{   /* 文本元素定义 */type="text",rectf={x=80;y=5;width=-10;height=30},name="title",font={name="宋体",h=14,color=0xFF555555}, itemhoverfont={name="宋体",h=14,color=0xFFBB0000},ellipsion = true;},{   /* 文本元素定义 */type="text",rectf={x=80;y=40;width=-10;height=40}, name="intro",font={name="宋体",h=12,color=0xFF55BB99}, ellipsion = true;},{   /* 图像元素定义 */type="img", name="subscriptInfo", rectf={x=5;y=5;width=30;height=13}, scale=2,},{   /* 矩形元素定义 */type="rect",rectf={x=-100;y=60;width=-5;height=-5}, fillcolor=0x994169E1;},        {   /* 文本元素定义 */type="text", rectf={x=-100;y=61;width=-5;height=-3}, name="count",align=1;valign=1;font={name="FontAwesome",h=11,color=0xFFFFFFFF}, },
}
//设置表格
winform.vlistEx.setHeaderHeight(1/winform.vlistEx.dpi); //表头设为绝对高度值:1px。目的是为了绘制虚表顶部边框线条。
winform.vlistEx.onResizeCol = false; //禁止调整列宽
winform.vlistEx.padding = 0; //单元格边距
winform.vlistEx.setTable( itemList /*数据表*/," "/*列标题*/,-2/*列宽*/,/*0左1中2右*/,/*字典转为数组*/,/*字符串转为Utf8*/,/*是否克隆新表*/);
winform.vlistEx.setRowHeight(80); //行高
winform.vlistEx.showLeftTopLines = true; //绘制左边线
winform.vlistEx.setColumnType(1/*列号*/,7/*_vlistEx_ColType_OwnerDrawCustom*/,itemModel/*参考godking.customPlus中的itemModel定义规则*/ );
//绘制_vlistEx_ColType_OwnerDrawCustom列单元格内容
winform.vlistEx.ownerDrawCustom = function (row,col,text/*当前单元格文本*/){return {logo = itemList[row].albumCoverPath;title = itemList[row].albumTitle;intro = itemList[row].intro;subscriptInfo = itemList[row]["subscriptInfo"]["url"];count = '\uF025  ' ++ tostring(itemList[row].albumPlayCount);}
}
//单元格点击事件
winform.vlistEx.onClick = function(row/*行*/,col/*列*/,x,y,buttonIndex/*按钮序号*/){if row and col {var url = "https://www.ximalaya.com"++itemList[row]["albumUrl"];wb.go(url);}
}
winform.vlistEx.onClick(1,1);
win.loopMessage();

 

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

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

相关文章

网安数学基础期末复习

目录 整除同余同余方程群和环 整除 a的显然因数/平凡因数1,a整除的传递性和组合性 若 a ∣ b , b ∣ a a|b,b|a a∣b,b∣a 则 a b a\pm b ab欧几里得带余除法 公因数和最大公因数在整除里的定义,最大公因数为1则两数互质,注意公因数有正…

【论文阅读笔记】SCI算法与代码 | 低照度图像增强 | 2022.4.21

目录 一 SCI 1 SCI网络结构 核心代码(model.py) 2 SCI损失函数 核心代码(loss.py) 3 实验 二 SCI效果 1 下载代码 2 运行 一 SCI 💜论文题目:Toward Fast, Flexible, and Robust Low-Light Image …

AcWing练习题:平均数2

读取三个浮点数 A,B 和 C 的值,对应于三个学生的成绩。 请你计算学生的平均分,其中 A 的成绩的权重为 2,B 的成绩的权重为 3,C 的成绩的权值为 5。 成绩的取值范围在 0 到 10 之间,且均保留一位小数。 输…

aardio —— 改变按钮文本颜色

import win.ui; /*DSG{{*/ var winform win.form(text"改变按钮颜色示例";right279;bottom239;composited1) winform.add( button{cls"button";text"点这里1";left16;top104;right261;bottom159;fontLOGFONT(h-14);z1}; button2{cls"butto…

Scratch教学作品 | 白水急流——急流勇进,挑战反应极限! ‍♂️

今天为大家推荐一款刺激又好玩的Scratch冒险作品——《白水急流》!由AgentFransidium制作,这款作品将带你体验惊险的急流救援任务,帮助那位“睡着的疯狂人”安全穿越湍急水域!想要挑战自己的反应极限?快来试试吧&#…

Android测试ABD环境及语句

1、什么是adb ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。 ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真…

库伦值自动化功耗测试工具

1. 功能介绍 PlatformPower工具可以自动化测试不同场景的功耗电流,并可导出为excel文件便于测试结果分析查看。测试同时便于后续根据需求拓展其他自动化测试用例。 主要原理:基于文件节点 coulomb_count 实现,计算公式:电流&…

creating-custom-commands-in-flask

在烧瓶中创建自定义命令 原文:https://www . geesforgeks . org/creating-custom-commands-in-flask/ 本文围绕如何在 flask 中创建自定义命令展开。每次使用烧瓶运行运行烧瓶时,运行实际上是一个命令,在烧瓶配置文件中启动一个名为运行的函数。同样&…

机器学习基础-机器学习的常用学习方法

半监督学习的概念 少量有标签样本和大量有标签样本进行学习;这种方法旨在利用未标注数据中的结构信息来提高模型性能,尤其是在标注数据获取成本高昂或困难的情况下。 规则学习的概念 基本概念 机器学习里的规则 若......则...... 解释:如果…

python使用AprilTag 3

python使用AprilTag 3 最近想测试一下AprilTag精度,看看能不能用的上。 1 安装 法1:github源码编译安装(放弃) 一开始找到了AprilTag 3的官方github网址https://github.com/AprilRobotics/apriltag,但是按着操作下…

小程序学习07—— uniapp组件通信props和$emit和插槽语法

目录 一 父组件向子组件传递消息 1.1 props (a)传递静态或动态的 Prop (b)单向数据流 二 子组件通知父组件 2.1 $emit (a)定义自定义事件 (b)绑定自定义事件 三 插槽语法…

纵览!报表控件 Stimulsoft Reports、Dashboards 和 Forms 2025.1 新版本发布!

Stimulsoft 2025.1 新版发布,旨在增强您创建报告、仪表板和 PDF 表单的体验!此最新版本为您带来了许多改进和新功能,使数据处理更加高效和用户友好。亮点包括对 .NET 9 的支持、Microsoft Analysis Services 的新数据适配器、发布向导中适用于…

Unity Pico 应用失去焦点后,追踪功能被禁用(原生 UI 界面弹出)

在 Unity 中,如果正在使用新的输入系统,任何触发 OnApplicationFocus(false) 的事件都可能会禁用追踪功能。 负责此功能的组件是附加到主摄像机的 "Tracked Pose Driver (Input System)" 组件。由于非输入系统版本不是新输入系统的一部分&…

面试准备备备备

职业技能 放到简历的黄金位置(HR刷选简历的重要参考) 基本准则:写在简历上的必须能聊,不然就别写 参考公式:职业技能 必要技术 其他技术 针对性的引导面试官(让他问一些你想让他问的) 寻找合…

多光谱图像的处理和分析方法有哪些?

一、预处理方法 1、辐射校正: 目的:消除或减少传感器本身、大气条件以及太阳光照等因素对多光谱图像辐射亮度值的影响,使得图像的辐射值能够真实反映地物的反射或发射特性。 方法:包括传感器校正和大气校正。传感器校正主要是根…

艾体宝方案丨全面提升API安全:AccuKnox 接口漏洞预防与修复

一、API 安全:现代企业的必修课 在现代技术生态中,应用程序编程接口(API)扮演着不可或缺的角色。从数据共享到跨平台集成,API 成为连接企业系统与外部服务的桥梁。然而,伴随云计算的普及与微服务架构的流行…

多个DataV遍历生成

DataV是数据可视化工具 与Echart类似 相对Echart图标边框 装饰可选官网DataV 安装 npm install kjgl77/datav-vue3main.ts import DataVVue3 from kjgl77/datav-vue3 app.use(DataVVue3)多个DataV遍历生成 Vue3viteDataV为例:<template><div w50rem h25rem flex&qu…

小程序租赁系统的优势与应用探索

内容概要 小程序租赁系统&#xff0c;听起来很高大上&#xff0c;但实际上它比你想象的要实用得多&#xff01;设想一下&#xff0c;几乎所有的租赁需求都能通过手机轻松解决。这种系统的便捷性体现在让用户随时随地都能发起租赁请求&#xff0c;而不再受制于传统繁琐的手续。…

driftingblues2

修改网卡配置信息 首先kali终端运行以下命令查看靶机ip 这里我们发现并没有查到靶机的ip&#xff0c;这时我们重启靶机 打开靶机&#xff0c;按下e键&#xff0c;进入到如下界面 将ro替换为rw signie init/bin/bash 替换完毕后&#xff0c;按下Ctrl键X键&#xff0c;进入如下…

Redis 使用redisTemplate获取某个规则下的key的全量数据(示例Set结构)

如下是redis中存储的数据结构 我想取key以favorites:结尾的所有数据 Redis 的 SCAN 命令用于迭代数据库中的键&#xff0c;支持通过模式过滤结果。模式规则基于 Redis 的通配符匹配语法&#xff0c;类似于文件名匹配规则&#xff1a; *&#xff1a;匹配零个或多个字符。?&…