Die QML-Typen Component
und Instantiator
scheinen ähnliche Dinge zu tun; Erstellen Sie QML-Objekte auf Anfrage, anstatt sie zu analysieren. Was ist der Unterschied? Warum sollte ich eins über das andere benutzen wollen?Unterschied zwischen QML-Komponente und Instantiator?
5
A
Antwort
2
Eine Instantiator
erzeugt Instanzen der angegebenen Component
- eine für jeden Modelleintrag in model
. Es ist ähnlich wie der Repeater.
Eine Component
ist eine Klasse. A Instantiator
ist eine Art Fabrik für die gegebene Komponente.
Kann ich nicht einfach Instanzen einer 'Komponente' ohne einen' Instantiator' erzeugen? – JesseTG
Es gibt mehrere Möglichkeiten, wählen Sie, welche für Sie am besten passt: Sie können eine ['Loader'] (http://doc.qt.io/qt-5/qml-qtquick-loader.html) für eine einzelne Instanz verwenden , ein [Repeater] (http://doc.qt.io/qt-4.8/qml-repeater.html) für mehrere Instanzen. Seit QtQml2.2 gibt es auch den ['Instantiator '] (http://doc.qt.io/qt-5/qml-qtqml-instantiator.html), der ein Repeater ist, der asynchron laden kann. Sie können auch 'Component.createrObject()' oder 'Component.incubateObject()' verwenden, die an jeden 'Item' angehängt sind. –
Sie können sich' Component' als Prototyp des Objekts vorstellen. Wie eine 'Klasse MyClass {}' in 'C++'. "Instantiator" ist ein reales Objekt, das Objekte erstellt. Diese Artikel werden also an den "Instantiator" weitergegeben. Wenn Sie * instance * von 'Component' erstellen, sollten Sie einen übergeordneten Wert festlegen. – folibis