Я хочу создать окно qml со 100 textedit для примера, как его создать в цикле? Это возможно?Как создать mupltiple qml-компоненты в цикле
4
A
ответ
5
Посмотрите в QML Repeater элемент http://doc.qt.io/qt-4.8/qml-positioners.html
10
петля императивный код, так что это не QML но Javascript или C++. Таким образом, вы можете это сделать (например, встраивая вызов Qt.createComponent() в цикле JS), но в 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;
}
}
}
}
}
Этот способ действительно более мощный и намного более чистый с точки зрения QML!