QQmlFileSelector 类

一个用于将 QFileSelector 应用到 QML 文件加载的类。 更多...

头文件 #include <QQmlFileSelector>
CMakefind_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmakeQT += qml
继承 QObject

公共函数

QQmlFileSelector(QQmlEngine *engine, QObject *parent = nullptr)
虚拟~QQmlFileSelector() override
QFileSelector *selector() const
voidsetExtraSelectors(const QStringList &strings)
voidsetSelector(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 版本。请注意,这类似于用 +unix/Component.qml 交换 Component.qml,因此在使用 Component.qml 时,您不需要根据所选版本更改任何路径。

例如,要传递 "asset.png" 文件路径,您只需在 main.qml、Component.qml 和 +linux/Component.qml 中将其称为 "asset.png"。在所有情况下,它将在 Mac 平台上替换为 +mac/asset.png。

有关可用选择器的列表,请参阅 QFileSelector

您的平台也可能为您提供了额外的选择器。根据 QFileSelector 的规定,用于选择的目录必须以 '+' 字符开头,因此除非您的项目中有此类名称的目录,否则您不会意外触发此功能。

如果在引擎上设置了新的 QQmlFileSelector,则旧的一个将被替换。

成员函数说明

[明确] QQmlFileSelector::QQmlFileSelector(QQmlEngine *engine, QObject *parent = nullptr)

创建一个包含自己的 QFileSelector 的新 QQmlFileSelector,具有父对象 parent。它将对要应用的文件选择器的 QQmlEngineengine。它还将获取 QQmlFileSelector 的所有权。

[覆盖虚拟 noexcept] QQmlFileSelector::~QQmlFileSelector()

销毁 QQmlFileSelector 对象。

[noexcept] QFileSelector *QQmlFileSelector::selector() const

返回用于QQmlFileSelectorQFileSelector实例。

另请参阅setSelector

void QQmlFileSelector::setExtraSelectors(const QStringList &strings)

strings中包含的额外选择器添加到当前使用的QFileSelector中。当只需要额外的选择器而无需创建自己的QFileSelector实例时,请使用此方法。

void QQmlFileSelector::setSelector(QFileSelector *selector)

将用于QQmlFileSelector实例的QFileSelector设置为selectorQQmlFileSelector不会接管新的QFileSelector实例。要将QQmlFileSelector重置为使用其内部QFileSelector实例,请调用setSelector(nullptr)。

另请参阅selector

© 2024 The Qt Company Ltd。本文档中的文档贡献属于其各自的所有者。提供的文档根据GNU自由文档许可证版本1.3的条款许可,由自由软件基金会发布。Qt及其相关标志是The Qt Company Ltd.在芬兰以及全球其他国家的商标。所有其他商标均为其各自所有者的财产。