库文件下载:光庆·程序·在线 → aardio资源下载http://chengxu.online/

请同时下载以下文件:

1、库文件:plusList.rar

2、依赖最新版:paint.rar 和 customPlus.rar

解压缩后,都放到 lib/godking/ 目录下

先看效果

简介

1、本库是利用customPlus(plus组件自绘库),进行二次封装,成为特定类型的列表组件库。

2、本库的目的,是为了抛砖引玉,让更多爱好者作为参考,利用customPlus二次封装,做出更加强大漂亮的自绘组件库。

库代码

//plusList 漂亮的列表框
//光庆
//抛砖引玉之作,希望广大爱好者参考做出更漂亮的plus自绘组件namespace godkingclass plusList{ctor(plusCtrl,config){import fonts.fontAwesome;var itemModel = {{   // 项目背景type="rect",round=5,rectf={x=3;y=3;width=-3;height=-3},fillcolor=0xFFEEEEEE,itemhoverfillcolor=0xFFBdA99c,itemselectedfillcolor=0xFFEdD9Cc;},{// logo背景框,type="rect",round=5,rectf={x=10;y=10;width=80;height=80},color=0xFFCCCCCC,width=1,fillcolor=0x88FFFFFF,},{name="logo",type="img",rectf={x=14;y=14;width=72;height=72},round=5,},{//标题背景框type="rect",rectf={x=100;y=10;width=-10;height=25},round=12,fillcolor=0x88FFFFFF,},{name="title",type="text",rectf={x=105;y=12;width=-10;height=20},font={name="Tahoma",point=11,color=0xFF5d492c},itemselectedfont={name="Tahoma",point=11,color=0xFFFF0000},align=0},{name="content",type="text",rectf={x=100;y=40;width=-65;height=-10},font={name="Tahoma",point=9,color=0xFF888888},itemhoverfont={name="Tahoma",point=9,color=0xFFFFFFFF},itemselectedfont={name="Tahoma",point=9,color=0xFFAA5555},},{name = "btn1",type="rect",rectf={x=-65;y=40;width=-10;height=22},round=11,click=true,fillcolor= 0xFF4CAF50,hoverfillcolor = 0xFF65318e},{    type="text",rectf={x=-65;y=45;width=-10;height=17},align=1;font={name="FontAwesome",point=9,color=0xFFFFFFFF},text='\uF044 编辑',   },{name = "btn2",type="rect",rectf={x=-65;y=67;width=-10;height=22},round=11,click=true,fillcolor= 0xFFf44336,hoverfillcolor = 0xFF65318e},{type="text",rectf={x=-65;y=72;width=-10;height=17},align=1;font={name="FontAwesome",point=9,color=0xFFFFFFFF},text='\uF1F8 删除',    }   }import godking.customPlusvar p = godking.customPlus(plusCtrl,..table.concat({itemWidth=300,itemHeight=100},config));if #config.btn2 itemModel[10].text=config.btn2;else {..table.remove(itemModel,10);..table.remove(itemModel,9);itemModel[7].rectf.y=67;itemModel[8].rectf.y=72;}if #config.btn1 itemModel[8].text=config.btn1;else {..table.remove(itemModel,8);..table.remove(itemModel,7);}p.init(itemModel)var itemList ={{}};p.setItemList(itemList);..table.remove(itemList,1)p.onClick = function(itemIndex/*项目索引*/,elemIndex/*元素索引*/,elemID/*元素id*/,elemName/*元素name*/,plusIndex/*在当前显示列表中的序号*/){if this.onClick this.onClick (itemIndex,elemName="btn1"?1:2);}  };addItem = function(Tlogo,Ttitle,Tcontent){..table.push(itemList,{logo=Tlogo,title=Ttitle,content=Tcontent});  }delItem = function(index,count){for(i=1;count;1){if #itemList>=index ..table.remove(itemList,index);}}clear = function(){..table.clear(itemList);}getItem = function(){return itemList; }init = p.init;toNextRow = p.toNextRow;toNextPage = p.toNextPage;toPrevRow = p.toPrevRow;toPrevPage = p.toPrevPage;toItem = p.toItem;toRow = p.toRow;toPage = p.toPage;update = p.update;isChecked = p.isChecked;itemIndexToPageItemIndex = p.itemIndexToPageItemIndex;pageItemIndexToItemIndex = p.pageItemIndexToItemIndex;@..util.metaProperty(pageCount = {_get = function(){ return p.pageCount; }};selectedIndex = {_get = function(){ return p.selectedIndex;}     _set = function(v){ p.selectedIndex=v;}       }firstIndex = {_get = function(){ return p.firstIndex;}       _set = function(v){ p.firstIndex=v;}      }       )
}/**intellisense()
godking.plusList = plusList自绘列表框(光庆封装)
godking.plusList() = !GKplusList.
godking.plusList(__/*plus*/) = @godking.plusList(winform.plus,{autoSizeRow=false,    /*自动根据项目列数及plus宽度调整项目宽度*/autoSizeCol=true, /*自动根据项目行数及plus高度调整项目高度*/colnum=0,     /*项目列数,为0则根据项目宽度和plus宽度自动计算*/rownum=0,  /*项目行数,为0则根据项目高度和plus高度自动计算*/padLeft=5, /*plus左边空白距离*/padTop=5,    /*plus顶边空白距离*/padRight=5,  /*plus右边空白距离*/padBottom=5,/*plus底边空白距离*/btn1='\uF044 编辑',/*按钮btn1标题,不设置则隐藏该按钮*/btn2='\uF1F8 删除' /*按钮btn2标题,不设置则隐藏该按钮*/})
end intellisense**//**intellisense(!GKplusList.)
addItem(__,,) = 添加项目。参数:1、logo图片 2、title文本 3、content文本
delItem(__,1) = 删除项目。参数:1、项目索引 2、删除数量
clear() = 清空项目。
getItem() = 获取项目列表。
onClick = @.onClick = function(index/*项目索引*/,btn/*按钮索引*/){__
}
end intellisense**/ /**intellisense(!GKplusList.)
init() = 初始化plus布局。\n可在plus尺寸改变事件中调用。
toNextRow() = 跳转到下一行,plus显示内容将从当前开始行的下一行开始。
toNextPage() = 跳转到下一页,plus显示内容为当前页的下一页。
toPrevRow() = 跳转到上一行,plus显示内容将从当前开始行的上一行开始。
toPrevPage() = 跳转到上一页,plus显示内容为当前页的上一页。
toItem(__) = 跳转到指定项目,plus显示内容从指定项目开始。
toRow(__) = 跳转到指定行,plus显示内容从指定行开始。
toPage(__) = 跳转到指定页,plus显示内容为指定页内容。
update() = 刷新当前页全部内容。
update(__,false) = 刷新指定项目内容。可用于编辑某项内容后及时刷新。\n参数:1、项目索引 2、是否为当前页项目索引(默认为false:全部项目索引)。
pageCount = 页面总数。
selectedIndex = 当前选中的项目索引。
firstIndex = 当前页显示的第一个项目索引。
itemIndexToPageItemIndex(__) = 项目索引转当前页项目索引。参数:项目索引。\n取项目列表中的项目在当前页中的索引。未包含在当前页中则返回空。
pageItemIndexToItemIndex(__) = 当前页项目索引转项目索引。参数:当前页项目索引。\n取当前页显示项目在所有项目列表中的索引。未找到则返回空。
end intellisense**/

调用代码示例

看看封装好了以后,调用时多么多么的简单!

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls="button";text="Button";left=292;top=353;right=468;bottom=422;z=2};
plus={cls="plus";left=35;top=24;right=735;bottom=259;notify=1;z=1}
)
/*}}*/winform.show();
import godking.plusList
p=godking.plusList(winform.plus,{autoSizeRow=false,   /*自动根据项目列数及plus宽度调整项目宽度*/autoSizeCol=true, /*自动根据项目行数及plus高度调整项目高度*/colnum=0,     /*项目列数,为0则根据项目宽度和plus宽度自动计算*/rownum=0,  /*项目行数,为0则根据项目高度和plus高度自动计算*/padLeft=5, /*plus左边空白距离*/padTop=5,    /*plus顶边空白距离*/padRight=5,  /*plus右边空白距离*/padBottom=5,/*plus底边空白距离*/btn1='\uF044 编辑',/*按钮btn1标题,不设置则隐藏该按钮*/btn2='\uF1F8 删除' /*按钮btn2标题,不设置则隐藏该按钮*/})for(i=1;20;1){p.addItem("E:\图片素材\png\png128_1000\"++i++".png","标题"++i,"内容"++i)
}
p.update()
p.onClick = function(index/*项目索引*/,btn/*按钮索引*/){..win.msgbox(btn)
}
winform.button.oncommand = function(id,event){p.toNextPage()
}win.loopMessage();

aardio - 【库】plusList——二次封装plus自绘组件库相关推荐

  1. 初探 amaze-vue( 基于vue.js封装的Amaze UI 组件库)

    Amaze UI 是以移动优先(Mobile first)为理念,面向 HTML5 开发的国产优秀组件库.因官方未提供vue.js版本,而且民间一直对vue.js版本的 Amaze UI 组件库呼声很 ...

  2. java项目中可以封装的组件_封装属于自己的组件库

    封装属于自己的组件库 - VUE 「适合人群:一起聊聊组件这件事」 「观看时间:30min」 「说明:一些经验分享,欢迎探讨」 前言 现目前,vue 社区下大大小小的组件库是越来越多,优秀的开源组件也 ...

  3. Vue常用的组件库大全【前端工程师必备】【实时更新】【移动端、PC端(web端)、数据可视化组件库(数据大屏) 、动画组件库、3D组件库】

    Vue常用的组件库大全[前端工程师必备] (一)移动端 常用组件库 1)Vant ui 2)Cube UI 3)VUX 4) NuTUI 5)Mint ui 6)Varlet UI 7)OnsenUI ...

  4. 8、合宙Air模块Luat开发:基于官方库的二次封装,使串口更加易用

    目录 点击这里查看所有博文 本系列博客,理论上适用于合宙的Air202.Air268.Air720x.Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持). 先不管支不支持,如果 ...

  5. vue 如何开发封装自己的公共组件库,并发布到 npm 上

    一.全局安装 vue-cli 脚手架,使用 vue init webpack-simple yyl-npm-practice 初始化项目 初始化项目后 npm install ; npm run de ...

  6. LuLu UI - 腾讯阅文集团出品的“半封装” 开源 Web UI 组件库,特点是面向设计、简单灵活、支持 Vue

    阅文集团前端大神张鑫旭的团队出品的面向设计的前端 UI 组件库,上手简单,定制性强. 关于 LuLu UI LuLu UI 是一款面向桌面端和移动端网页开发的组件库,由阅文集团前端团队出品.阅文集团由 ...

  7. 基于dumi和antd封装的易用组件库(每个人都应该有自己的组件库)

    首先说下哈,不是造轮子,从来也不提倡造轮子- 作为一名前端程序员,个人感觉轮子已经够多了,留下来的时间不如摸鱼,比如发发沸点.逛逛掘金,或者下班了陪陪女朋友 最近发现了一个好的工具 dumi 突然心血 ...

  8. api 微信小程序组件库colorui_2020最全微信小程序UI组件库合集

    概述 " 这可能是2020年最全的UI组件集合了,希望对你有帮助,如果觉得好,别忘了给小编给点点赞鼓励! 微信小程序实用UI组件库合集 第一款 官方WeUI组件库 " 地址: ht ...

  9. vue 组件库发布_如何创建和发布Vue组件库

    vue 组件库发布 Component libraries are all the rage these days. They make it easy to maintain a consisten ...

  10. vue怎么自己创建组件并引用_如何在组件库项目内直接引用vue-cli生成的组件库文件...

    感谢大家帮忙, 我第一次用vue-cli制作组件库,使用的命令是: vue-cli-service build --target lib --name vpui ./src/components/in ...

最新文章

  1. Array Networks ***官网 客户端下载地址
  2. 最大流 ---- 最小路径覆盖 ---- P2765魔术球问题(网络流24题)
  3. JAVA-容器(2)-Collection
  4. eclipse启动了tomcat,但是浏览器打不开欢迎页
  5. canvas图表(4) - 散点图
  6. apex英雄机器人探路者怎么玩_Apex英雄探路者机器人实战技巧攻略[多图]
  7. 当页面上的某个控件回发时,保持滚动条位置的。
  8. LeetCode 96. 不同的二叉搜索树(Unique Binary Search Trees )
  9. python端口与c的区别_Python和C区别该如何理解?如何适应这种区别?
  10. 【蓝桥杯】 三行代码解决 “全排列的价值”(2022省赛pythonA组)
  11. 牛客网暑期ACM多校训练营(第三场) J Distance to Work 计算几何求圆与多边形相交面积模板...
  12. LCT(Link Cut Tree)总结
  13. 个人收集的资源(0th) IDM绿化版(免费免积分)
  14. 【原创】ESXI获取虚拟机的moid,并使用VMRC登录远程虚拟机
  15. [学习]啦啦外卖定位修复,商家经纬度保存修复
  16. 测控计算机三级有用吗,计算机等级考试教程(三级A 微机在测控领域的应用)...
  17. 视频时代的下一幕 ABC Inspire:读懂视频
  18. opencv实训记录(大家来找茬辅助外挂)
  19. Vue CLI3不兼容IE11打开空白报错SCRIPT1003: 缺少 ‘:‘
  20. 计算机开机键英语字母,电脑开机黑屏显示英文字母

热门文章

  1. 美柚:女性移动APP安全攻防战
  2. 七夕节程序员应有的表白方式
  3. 编程15年,如何才能成不了高手?
  4. 谷歌身份验证器 api_如何验证任何Google API
  5. int.prase和int.tryprase
  6. 我为什么开始写博客,并要坚持下去?
  7. Python将npy文件转换为mat文件
  8. LR11补丁下载地址
  9. MobaXterm SSH 保持连接
  10. 电商后台系统:管理后台之账号管理(一)