User interface 进程栏动画中的UI问题

User interface 进程栏动画中的UI问题,user-interface,animation,qml,User Interface,Animation,Qml,我正在开发QML的进度条 但并非所有参数值都适用。 它在UI中有更多的逻辑问题 要求每个人都检查它 下面是代码片段 Rectangle { width: 500; height: 480 ..... color: "lightyellow" Rectangle { id: container .... Row { id:repeaterid Repeater

我正在开发QML的进度条

但并非所有参数值都适用。 它在UI中有更多的逻辑问题

要求每个人都检查它

下面是代码片段

Rectangle
{
    width: 500; height: 480

    .....

    color: "lightyellow"

    Rectangle {
        id: container
        ....

        Row {
            id:repeaterid


            Repeater {
                id: repeater
                model: 100
                Item { id: smallrect2; opacity:0.5; width:_width; height:_height

                    Rectangle { id: smallrect; color: _newColor }

                 ......  

                }
            }
        }

        Timer {
            id: progressTimer
            interval: 100

            onTriggered: {

                if ((slider.x + slider.width) < repeaterid.width)
                {
                    slider.x += _width
                    var item = repeater.itemAt(indexCurrent)
                    item._newColor = "red"
                    indexCurrent++
                }
                else
                {
                    progressTimer.repeat = false
                }
            }
        }

        Rectangle {
            id: slider

            // Adjust the dimensions of slider
            x: repeaterid.x 
            y: repeaterid.y
            width: _width 
            height: _height 

        }
    }

}
矩形
{
宽度:500;高度:480
.....
颜色:“浅黄色”
长方形{
id:集装箱
....
划船{
id:repeaterid
中继器{
id:中继器
型号:100
项目{id:smallrect2;不透明度:0.5;宽度:_宽度;高度:_高度
矩形{id:smallrect;颜色:_newColor}
......  
}
}
}
计时器{
进程计时器
间隔时间:100
反对:{
if((slider.x+slider.width)

当_width的值为30且中继器中的模型值为18时,可实现所需的行为,但随着值的减小,进度条中的滑块无法完成其路径(宽度=5,模型=100),或者如果增大,则会移出路径

已解决:根据容器大小和矩形大小调整模型值

问题在于计时器中的if条件,但仍然无法破解滑块的正确条件只是注意:使用中继器创建点对性能非常不利。您正在创建(和呈现)至少200个单独的元素和300个属性绑定。这将大大降低加载场景的创建部分的速度。此外,渲染速度将非常慢。我建议创建一个带有圆点和一些透明像素的png图像。然后使一个图像元素在fillMode设置为Image.Tile时使用它,并调整图像元素的宽度以显示更多的点。