Spec-Zone.ru › Qt 5.6

Класс QQmlApplicationEngine

QQmlApplicationEngine предоставляет удобный способ загрузки приложения из одного файла QML. Подробнее...

Заголовок: #include <QQmlApplicationEngine>
qmake: QT += qml
С тех пор: Qt 5.1
Наследует: QQmlEngine
  • Список всех членов, включая унаследованные

Открытые функции

QQmlApplicationEngine(QObject *parent = Q_NULLPTR)
QQmlApplicationEngine(const QUrl &url, QObject *parent = Q_NULLPTR)
QQmlApplicationEngine(const QString &filePath, QObject *parent = Q_NULLPTR)
~QQmlApplicationEngine()
QList<QObject *> rootObjects()
  • 24 открытых функций унаследованы от QQmlEngine
  • 9 открытых функций унаследованы от QJSEngine
  • 31 открытых функций унаследованы от QObject

Открытые слоты

void load(const QUrl &url)
void load(const QString &filePath)
void loadData(const QByteArray &data, const QUrl &url = QUrl())
  • 1 открытый слот унаследован от QObject

Сигналы

void objectCreated(QObject *object, const QUrl &url)
  • 2 сигнала унаследованы от QQmlEngine
  • 2 сигнала унаследованы от QObject

Дополнительные унаследованные члены

  • 1 свойство унаследовано от QQmlEngine
  • 1 свойство унаследовано от QObject
  • 4 статических открытых члена унаследованы от QQmlEngine
  • 11 статических открытых членов унаследованы от QObject
  • 1 защищённая функция унаследована от QQmlEngine
  • 9 защищённых функций унаследованы от QObject

Подробное описание

QQmlApplicationEngine предоставляет удобный способ загрузки приложения из одного файла QML.

Этот класс объединяет QQmlEngine и QQmlComponent, чтобы предоставить удобный способ загрузки одного файла QML. Он также предоставляет некоторую центральную функциональность приложения для QML, которую приложение C++/QML обычно контролирует из C++.

Его можно использовать следующим образом:

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);
    QQmlApplicationEngine engine("main.qml");
    return app.exec();
}

В отличие от QQuickView, QQmlApplicationEngine не автоматически создаёт корневое окно. Если вы используете визуальные элементы из Qt Quick, вам нужно поместить их в Window.

Вы также можете использовать QCoreApplication с QQmlApplicationEngine, если вы не используете модули QML, которые требуют QGuiApplication (например, QtQuick).

Список изменений конфигурации по умолчанию QQmlEngine:

  • Подключение Qt.quit() к QCoreApplication::quit()
  • Автоматическая загрузка файлов локализации из каталога i18n, расположенного рядом с основным файлом QML.
  • Автоматическое задание контроллера инкубации, если сцена содержит QQuickWindow.
  • Автоматическое назначение QQmlFileSelector в качестве интерцептора URL, применяя селекторы файлов ко всем файлам QML и ресурсам.

Поведение движка можно дополнительно настроить, используя унаследованные методы из QQmlEngine.

Документация по функциям членов

QQmlApplicationEngine::QQmlApplicationEngine(QObject *parent = Q_NULLPTR)

Создаёт новый QQmlApplicationEngine с заданным parent. Вам нужно будет вызвать load() позже, чтобы загрузить файл QML.

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

Создаёт новый QQmlApplicationEngine и загружает файл QML по заданному url. Это предоставляется для удобства и эквивалентно использованию конструктора без аргументов и последующему вызову load.

QQmlApplicationEngine::QQmlApplicationEngine(const QString &filePath, QObject *parent = Q_NULLPTR)

Создаёт новый QQmlApplicationEngine и загружает файл QML по заданному filePath, который должен быть локальным путем к файлу. Если указан относительный путь, он будет интерпретироваться как относительный к текущей рабочей директории приложения.

Это предоставляется для удобства и эквивалентно использованию пустого конструктора и последующему вызову load.

QQmlApplicationEngine::~QQmlApplicationEngine()

Уничтожает QQmlApplicationEngine и все объекты QML, которые он загрузил.

[slot] void QQmlApplicationEngine::load(const QUrl &url)

Загружает корневой файл QML, расположенный по адресу url. Дерево объектов, определённое в файле, создаётся немедленно для локальных URL-адресов файлов. Дистанционные URL-адреса загружаются асинхронно; слушайте сигнал objectCreated, чтобы определить, когда дерево объектов готово.

Если возникает ошибка, сообщения об ошибках выводятся с помощью qWarning.

[slot] void QQmlApplicationEngine::load(const QString &filePath)

Загружает корневой файл QML, расположенный по адресу filePath. filePath должен быть путём к локальному файлу. Если filePath — относительный путь, он считается относительным к рабочей директории приложения. Дерево объектов, определённое в файле, создаётся немедленно.

Если возникает ошибка, сообщения об ошибках выводятся с помощью qWarning.

[slot] void QQmlApplicationEngine::loadData(const QByteArray &data, const QUrl &url = QUrl())

Загружает QML, заданный в data. Дерево объектов, определённое в data, создаётся немедленно.

Если указан url, он используется в качестве базового URL компонента. Это влияет на относительные пути внутри данных и сообщения об ошибках.

Если возникает ошибка, сообщения об ошибках выводятся с помощью qWarning.

[signal] void QQmlApplicationEngine::objectCreated(QObject *object, const QUrl &url)

Этот сигнал генерируется, когда объект завершает загрузку. Если загрузка выполнена успешно, object содержит указатель на загруженный объект. В противном случае указатель равен NULL. Также предоставляется загруженный url. Обратите внимание, что если в QQmlApplicationEngine изначально был передан путь к файлу QString, этот url будет эквивалентен QUrl::fromLocalFile(filePath).

QList<QObject *> QQmlApplicationEngine::rootObjects()

Возвращает список всех корневых объектов, созданных QQmlApplicationEngine. В этот список войдут только объекты, загруженные с помощью load() или удобного конструктора.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qqmlapplicationengine.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API