• QQmlApplicationEngine


    一、描述

    QQmlApplicationEngine 继承自 QQmlEngine,结合了 QQmlEngine QQmlComponent 来提供一种便捷的方式来加载单个 QML 文件。它还向 QML 公开了一些中央应用程序功能,C++/QML 混合应用程序通常可以从 C++ 控制这些功能。

    1. #include <QGuiApplication>
    2. #include <QQmlApplicationEngine>
    3. int main(int argc, char *argv[])
    4. {
    5. QGuiApplication app(argc, argv);
    6. QQmlApplicationEngine engine("main.qml");
    7. return app.exec();
    8. }

    QQuickView 不同,QQmlApplicationEngine 不会自动创建根窗口。如果使用 Qt Quick 中的可视项目,则需要将它们放置在 Window 内。

    如果不使用任何需要 QGuiApplication 的 QML 模块,也可以将 QCoreApplication 与 QQmlApplicationEngine 一起使用。

    二、成员函数

    1、QQmlApplicationEngine(const QString &filePath, QObject *parent = nullptr)

          QQmlApplicationEngine(const QUrl &url, QObject *parent = nullptr)

    创建一个新的 QQmlApplicationEngine 并在给定的 filePath 加载 QML 文件。

          QQmlApplicationEngine(QObject *parent = nullptr)

    使用给定的父级创建一个新的 QQmlApplicationEngine。必须稍后调用 load() 才能加载 QML 文件。

    2、void load(const QString &filePath)

    加载位于 filePath 的根 QML 文件。

    filePath 必须是本地文件的路径。 如果 filePath 是相对路径,则将其视为相对于应用程序的工作目录。

    文件定义的对象树立即实例化。

          void load(const QUrl &url)

    加载位于 url 的根 QML 文件。文件定义的对象树会立即为本地文件 url 创建。远程 url 是异步加载的,监听 objectCreated 信号以确定对象树何时准备好。

    如果发生错误,则使用空指针作为参数发出 objectCreated 信号。

    3、void loadData(const QByteArray &data, const QUrl &url = QUrl())

    加载data中给定的 QML。由data定义的对象树立即实例化。

    4、【信号】void objectCreated(QObject *object, const QUrl &url)

    当object完成加载时会发出此信号。如果加载成功,object 包含指向加载对象的指针,否则该指针为 nullptr。

    还提供了对象来源的组件的 url。

    5、void setExtraFileSelectors(const QStringList &extraFileSelectors)

    将 extraFileSelector 设置为传递给用于将 URL 解析为本地文件的内部 QQmlFileSelector。加载第一个 QML 文件时应用 extraFileSelectors。之后设置它们没有效果。

    6、void setInitialProperties(const QVariantMap &initialProperties)

    设置 QML 组件在加载后初始化的属性。

    1. QQmlApplicationEngine engine;
    2. EventDatabase eventDatabase;
    3. EventMonitor eventMonitor;
    4. engine.setInitialProperties({
    5. { "eventDatabase", QVariant::fromValue(&eventDatabase) },
    6. { "eventMonitor", QVariant::fromValue(&eventMonitor) }
    7. });

    7、QList<QObject *> rootObjects()

    返回由 QQmlApplicationEngine 实例化的所有根对象的列表。

  • 相关阅读:
    第七章认识Express框架
    TCP四次挥手过程
    css自学框架之二级下拉菜单
    Kaggle - LLM Science Exam(二):Open Book QA&debertav3-large详解
    python 中内置函数ord()返回字符串的ASCII数值
    MS4553S双向电平转换器可pin对pin兼容TXB0102/TXS0102
    Spring优点大集合
    Go语言核心(二)
    技术分享 | ProxySQL Binlog Reader 组件介绍(上篇)
    自动驾驶学习笔记(五)——绕行距离调试
  • 原文地址:https://blog.csdn.net/kenfan1647/article/details/125500282