QQmlFileSelector Class
一个用于将QFileSelector 应用于QML文件加载的类。更多内容...
| 标题: | #include <QQmlFileSelector> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Qml) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
| 继承自: | QObject |
公共函数
| QQmlFileSelector(QQmlEngine *engine, QObject *parent = nullptr) | |
| virtual | ~QQmlFileSelector() override |
| QFileSelector * | selector() const |
| void | setExtraSelectors(const QStringList &strings) |
| void | setSelector(QFileSelector *selector) |
详细说明
QQmlFileSelector 会自动将QFileSelector 应用于 QML 文件和资源路径。
使用方法如下:
QQmlEngine engine;
QQmlFileSelector* selector = new QQmlFileSelector(&engine);然后,您可以像这样替换文件:
main.qml
Component.qml
asset.png
+unix/Component.qml
+mac/asset.png在此示例中,main.qml 通常会使用 Component.qml 作为 Component 类型的定义文件。但在 Unix 平台上,由于存在 Unix 选择器,系统将改用 +unix/Component.qml 版本。 请注意,这相当于将 Component.qml 替换为 +unix/Component.qml,因此在使用 Component.qml 时,您无需根据所选版本来修改任何路径。
例如,若要传递“asset.png”文件路径,您只需在 main.qml、Component.qml 和 +linux/Component.qml 中均将其直接引用为“asset.png”。 在 Mac 平台上,它将在所有情况下都被替换为 +mac/asset.png。
有关可用选择器的列表,请参阅QFileSelector 。
您的平台可能还提供了其他可供使用的选择器。正如QFileSelector 所规定的那样,用于选择的目录必须以“+”字符开头,因此,除非您的项目中有此类名称的目录,否则不会意外触发此功能。
如果在引擎上设置了新的 QQmlFileSelector,旧的将被替换。
成员函数文档
[explicit] QQmlFileSelector::QQmlFileSelector(QQmlEngine *engine, QObject *parent = nullptr)
创建一个新的 QQmlFileSelector,其父对象为parent ,该对象包含其自身的QFileSelector 。engine 是您希望对其应用文件选择器的QQmlEngine 。它还将接管该QQmlFileSelector的所有权。
[override virtual noexcept] QQmlFileSelector::~QQmlFileSelector()
销毁QQmlFileSelector 对象。
[noexcept] QFileSelector *QQmlFileSelector::selector() const
返回由QQmlFileSelector 使用的QFileSelector 实例。
另请参阅 setSelector()。
void QQmlFileSelector::setExtraSelectors(const QStringList &strings)
将strings 中包含的额外选择器添加到当前正在使用的QFileSelector 中。当您仅需这些额外选择器时,请使用此方法,以避免必须自行创建QFileSelector 实例。
void QQmlFileSelector::setSelector(QFileSelector *selector)
将QQmlFileSelector 所使用的QFileSelector 实例设置为selector 。QQmlFileSelector 不会接管新的QFileSelector 。若要将QQmlFileSelector 重置为使用其内部的QFileSelector 实例,请调用setSelector(nullptr)。
另请参阅 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.