5

たとえば、100個のテキストエディットを含むqmlウィンドウを作成したいのですが、ループ内で作成するにはどうすればよいですか?それは可能ですか?

4

2 に答える 2

14

ループは命令型コードなので、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 の観点からすると、より強力でよりクリーンになります。

于 2013-03-27T12:19:26.610 に答える
5

QML Repeater 要素を調べてくださいhttp://doc.qt.io/qt-4.8/qml-positioners.html

于 2013-03-18T13:58:58.237 に答える