随机QML ListModel

时间:2018-02-25 11:01:19

标签: qt qml shuffle listmodel

我有一个ListModel和一个转发器。转发器从ListModel中绘制Items,一个在另一个上面。到目前为止工作正常。

除了在每个应用程序启动时,我想要有不同的绘制顺序。

所以我认为最好在应用Repeater之前“洗牌”ListModel中的ListElements。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

使用以下答案:

适应package io.warthog.designpatterns.behaviorparameterization.impl; import io.warthog.designpatterns.behaviorparameterization.Apple; import org.junit.Test; import static org.mockito.Mockito.when; public class AppleGreenColorPredicateTest { private AppleGreenColorPredicate classUnderTest = new AppleGreenColorPredicate(); @Test public void test_WithGreenApple_ReturnsTrue() { Apple apple = new Apple(); apple.setColor("green"); when(classUnderTest.test(apple)).thenReturn(true); } } 你会得到以下功能:

<强> utils.js

package io.warthog.designpatterns.behaviorparameterization.impl;

import io.warthog.designpatterns.behaviorparameterization.Apple; import org.junit.Assert; import org.junit.Test;

public class AppleGreenColorPredicateTest {

    private AppleGreenColorPredicate classUnderTest = new AppleGreenColorPredicate();

    @Test
    public void test_WithGreenApple_ReturnsTrue() {
        Apple apple = new Apple();
        apple.setColor("green");
        Assert.assertEquals(true, classUnderTest.test(apple));
    }

}

<强> main.qml

ListModel

在此link中,您可以找到一个示例。

答案 1 :(得分:-2)

如何调用函数然后返回模型。

function shuffle(n)
{
     if(n === 1)
         return ["apples", "oranges", "pears"];
     else if(n === 2)
         return ["banana", "oranges", "pears"];
}

Column {
    Repeater {
        model: shuffle(1)
        Text { text: "Data: " + modelData }
    }
}