QQmlFileSelector Class
Eine Klasse zum Anwenden eines „ QFileSelector “ beim Laden von QML-Dateien. Mehr...
| Überschrift: | #include <QQmlFileSelector> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
| Erbt von: | QObject |
Öffentliche Funktionen
| QQmlFileSelector(QQmlEngine *engine, QObject *parent = nullptr) | |
| virtual | ~QQmlFileSelector() override |
| QFileSelector * | selector() const |
| void | setExtraSelectors(const QStringList &strings) |
| void | setSelector(QFileSelector *selector) |
Ausführliche Beschreibung
QQmlFileSelector wendet automatisch die „ QFileSelector “ auf QML-Datei- und Asset-Pfade an.
Die Verwendung erfolgt wie folgt:
QQmlEngine engine;
QQmlFileSelector* selector = new QQmlFileSelector(&engine);Dann können Sie Dateien wie folgt austauschen:
main.qml
Component.qml
asset.png
+unix/Component.qml
+mac/asset.pngIn diesem Beispiel verwendet main.qml normalerweise Component.qml für den Typ „Component“. Auf einer Unix-Plattform ist jedoch der Unix-Selektor vorhanden, sodass stattdessen die Version +unix/Component.qml verwendet wird. Beachten Sie, dass dies so funktioniert, als würde „Component.qml“ durch „+unix/Component.qml“ ersetzt. Wenn Sie also „Component.qml“ verwenden, sollten Sie keine Pfade ändern müssen, je nachdem, welche Version ausgewählt wurde.
Um beispielsweise den Dateipfad „asset.png“ weiterzugeben, würdest du ihn in „main.qml“, „Component.qml“ und „+linux/Component.qml“ durchweg einfach als „asset.png“ referenzieren. Auf Mac-Plattformen wird dies in allen Fällen durch „+mac/asset.png“ ersetzt.
Eine Liste der verfügbaren Selektoren finden Sie unter QFileSelector.
Möglicherweise stellt Ihre Plattform Ihnen auch zusätzliche Selektoren zur Verfügung. Wie unter QFileSelector angegeben, müssen Verzeichnisse, die für die Auswahl verwendet werden, mit einem „+“-Zeichen beginnen, sodass Sie diese Funktion nicht versehentlich auslösen, es sei denn, Sie haben Verzeichnisse mit solchen Namen in Ihrem Projekt.
Wird ein neuer „QQmlFileSelector“ in der Engine festgelegt, wird der alte ersetzt.
Dokumentation der Member-Funktionen
[explicit] QQmlFileSelector::QQmlFileSelector(QQmlEngine *engine, QObject *parent = nullptr)
Erstellt einen neuen `QQmlFileSelector` mit dem übergeordneten Objekt ` parent`, das sein eigenes ` QFileSelector` enthält. ` engine ` ist der ` QQmlEngine `, auf den Sie Dateiauswahlfelder anwenden möchten. Es übernimmt außerdem die Eigentümerschaft für den `QQmlFileSelector`.
[override virtual noexcept] QQmlFileSelector::~QQmlFileSelector()
Löscht das „ QQmlFileSelector “-Objekt.
[noexcept] QFileSelector *QQmlFileSelector::selector() const
Gibt die von der Funktion ` QQmlFileSelector` verwendete ` QFileSelector `-Instanz zurück.
Siehe auch setSelector().
void QQmlFileSelector::setExtraSelectors(const QStringList &strings)
Fügt dem aktuell verwendeten ` QFileSelector ` zusätzliche Selektoren hinzu, die in ` strings ` enthalten sind. Verwenden Sie diese Funktion, wenn Sie lediglich zusätzliche Selektoren benötigen, um zu vermeiden, dass Sie eine eigene ` QFileSelector `-Instanz erstellen müssen.
void QQmlFileSelector::setSelector(QFileSelector *selector)
Legt die „ QFileSelector “-Instanz, die von „ QQmlFileSelector “ verwendet werden soll, auf „ selector “ fest. „ QQmlFileSelector “ übernimmt nicht die Eigentumsrechte an der neuen „ QFileSelector “-Instanz. Um „ QQmlFileSelector “ so zurückzusetzen, dass es seine interne „ QFileSelector “-Instanz verwendet, rufen Sie „setSelector(nullptr)“ auf.
Siehe auch ` selector()`.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.