Класс 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() const |
- 25 открытых функций, унаследованных от QQmlEngine
- 11 открытых функций, унаследованных от QJSEngine
- 32 открытых функций, унаследованных от 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) |
- 3 сигнала, унаследованных от 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 компонента, из которого был получен object.
Примечание: Если путь к компоненту был задан как QString, содержащий относительный путь, url будет содержать полностью разрешённый путь к файлу.
QList<QObject *> QQmlApplicationEngine::rootObjects() const
Возвращает список всех корневых объектов, созданных QQmlApplicationEngine. Он будет содержать только объекты, загруженные с помощью load() или конструктора для удобства.
Примечание: В версиях Qt до 5.9 эта функция помечена как не-const.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qqmlapplicationengine.html