如何在循环中创建mupltiple qml组件

ita*_*dar 4 qml

我想创建一个带有100个textedit的qml窗口作为示例,如何在循环中创建它?那可能吗?

The*_*roo 11

循环是命令式代码,因此它不是QML而是Javascript或C++.当然,你可以这样做(例如通过在JS循环中嵌入一个Qt.createComponent()调用),但在QML中,认为声明是更好的事情,这意味着你不做'做'事情,你'定义'事情:

import QtQuick 2.0

Rectangle {
    id: base;
    width: 400;
    height: 800;

    Column {
        spacing: 5; // a simple layout do avoid overlapping

        Repeater {
            model: 10; // just define the number you want, can be a variable too
            delegate: Rectangle {
                width: 200;
                height: 20;
                color: "white";
                border { width: 1; color: "black" }
                radius: 3;

                TextInput {
                    anchors.fill: parent;
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

从QML的角度来看,它真的更强大,更清洁!