aardio 文档

aardio 范例: listview 内部模拟进度条

BT 下载进度条

// listview 内部模拟进度条
// BT 下载进度条: https://www.aardio.com/zh-cn/doc/example/Network/Transfer/bt.win.html

import win.ui;
/*DSG{{*/
var winform = win.form(text="listview 内部模拟进度条";right=688;bottom=303;max=false)
winform.add(
listview={cls="listview";left=18;top=20;right=664;bottom=277;bgcolor=0xFFFFFF;edge=1;z=1}
)
/*}}*/

// -------- listview 模拟带复选框(任意列) --------

winform.listview.columns = [ 
    ["标题",150],
    ["进度条",-1/*自适应宽度*/]
]

winform.listview.items = [["测试项目",""],["测试项目2",""]] //二维数组

//在 listview 里用纯文本模仿进度条效果
function textProgressBar(current, total, length = 20){
    var percent = current / total;
    var filled = math.floor(length * percent);
    var bar = string.repeat(filled,"▓") + string.repeat(length - filled,"░");

    return string.format(percent<10?'%s %.1f%%':'%s %.0f%%', bar, percent * 100);
}

var pos = 1;
winform.setInterval( 
    function(){
        pos++;

        if(pos>100) return false;

        var bar = textProgressBar(pos,100)

        winform.listview.setItemText(bar,1,2);

        var bar = textProgressBar(100-pos,100)

        winform.listview.setItemText(bar,2,2);
    },100
)

//避免 listview 控件频繁刷新时闪烁
winform.listview.enableDoubleBuffering();

winform.show() 
win.loopMessage();
Markdown 格式