Класс QQuickView
Класс QQuickView предоставляет окно для отображения пользовательского интерфейса Qt Quick. Подробнее...
| Заголовок: | #include <QQuickView> |
| CMake: | find_package(Qt6 COMPONENTS Quick REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
| qmake: | QT += quick |
| С момента: | Qt 5.0 |
| Наследует: | QQuickWindow |
Типы публичного доступа
| перечисление | ResizeMode { SizeViewToRootObject, SizeRootObjectToView } |
| перечисление | Статус { Null, Ready, Loading, Error } |
Свойства
- resizeMode : ResizeMode
- источник : QUrl
- статус : const Status
Публичные функции
| QQuickView(const QUrl &source, QWindow *parent = nullptr) | |
| QQuickView(QQmlEngine *engine, QWindow *parent) | |
| QQuickView(QWindow *parent = nullptr) | |
| virtual | ~QQuickView() override |
| QQmlEngine * | engine() const |
| QList<QQmlError> | errors() const |
| QSize | initialSize() const |
| QQuickView::ResizeMode | resizeMode() const |
| QQmlContext * | rootContext() const |
| QQuickItem * | rootObject() const |
| void | setResizeMode(QQuickView::ResizeMode) |
| QUrl | source() const |
| QQuickView::Status | status() const |
Свойства слотов
| void | setInitialProperties(const QVariantMap &initialProperties) |
| void | setSource(const QUrl &url) |
Сигналы
| void | statusChanged(QQuickView::Status status) |
Переопределенные защищенные функции
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | keyReleaseEvent(QKeyEvent *e) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
Подробное описание
Это удобный подкласс QQuickWindow, который автоматически загрузит и отобразит сцену QML, если ему будет передан URL-адрес основного исходного файла. В качестве альтернативы вы можете создать собственные объекты с помощью QQmlComponent и поместить их в вручную настроенное окно QQuickWindow.
Типичное использование:
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQuickView *view = new QQuickView;
view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show();
return app.exec();
} Чтобы получать ошибки, связанные с загрузкой и выполнением QML с помощью QQuickView, подключитесь к сигналу statusChanged() и отслеживайте QQuickView::Error. Ошибки доступны через QQuickView::errors().
QQuickView также управляет размерами представления и корневого объекта. По умолчанию resizeMode равен SizeViewToRootObject, что загрузит компонент и перестроит его до размера представления. В качестве альтернативы, resizeMode можно установить на SizeRootObjectToView, что приведет к пересбору размера представления до размера корневого объекта.
См. также Exposing Attributes of C++ Types to QML и QQuickWidget.
Документация по типам членов
перечисление QQuickView::ResizeMode
Это перечисление указывает, как изменять размер представления.
| Постоянная | Значение | Описание |
|---|---|---|
QQuickView::SizeViewToRootObject |
0 |
Представление изменяет размер вместе с корневым элементом в QML. |
QQuickView::SizeRootObjectToView |
1 |
Представление автоматически изменит размер корневого элемента до размера представления. |
перечисление QQuickView::Статус
Определяет статус загрузки QQuickView.
| Постоянная | Значение | Описание |
|---|---|---|
QQuickView::Null |
0 |
У этого QQuickView нет установленного источника. |
QQuickView::Ready |
1 |
Этот QQuickView загрузил и создал компонент QML. |
QQuickView::Loading |
2 |
Этот QQuickView загружает данные из сети. |
QQuickView::Error |
3 |
Произошла одна или несколько ошибок. Вызовите errors(), чтобы получить список ошибок. |
Документация свойств
resizeMode : ResizeMode
Это свойство определяет, должен ли вид перестраивать содержимое окна.
Если это свойство установлено в SizeViewToRootObject (значение по умолчанию), вид перестраивается в соответствии с размером корневого элемента в QML.
Если это свойство установлено в SizeRootObjectToView, вид автоматически перестроит корневой элемент до размера вида.
Функции доступа:
| QQuickView::ResizeMode | resizeMode() const |
| void | setResizeMode(QQuickView::ResizeMode) |
См. также initialSize().
source : QUrl
Это свойство содержит URL-адрес источника компонента QML.
Убедитесь, что предоставленный URL-адрес полный и корректный, в частности, используйте QUrl::fromLocalFile(), при загрузке файла из локальной файловой системы.
Обратите внимание, что установка URL-адреса источника приведет к инициализации компонента QML, даже если URL-адрес не изменился по сравнению со значением текущего.
Функции доступа:
| QUrl | source() const |
| void | setSource(const QUrl &url) |
[read-only] status : const Status
Текущий статус компонента.
Функции доступа:
| QQuickView::Status | status() const |
Сигнал уведомления:
| void | statusChanged(QQuickView::Status status) |
Документация по функциям-членам
QQuickView::QQuickView(const QUrl &source, QWindow *parent = nullptr)
Создаёт QQuickView с заданным QML source и parent. Значение по умолчанию для parent равно 0.
QQuickView::QQuickView(QQmlEngine *engine, QWindow *parent)
Создаёт QQuickView с заданным QML engine и parent.
Примечание: в этом случае QQuickView не владеет объектом engine; ответственность за удаление объекта лежит на вызывающем коде. Если engine будет удалён до вида, status() вернёт QQuickView::Error.
См. также Status, status() и errors().
QQuickView::QQuickView(QWindow *parent = nullptr)
Создаёт QQuickView с заданным parent. Значение по умолчанию для parent равно 0.
[slot, since 5.14] void QQuickView::setInitialProperties(const QVariantMap &initialProperties)
Устанавливает начальные свойства initialProperties, с которыми компонент QML инициализируется после вызова QQuickView::setSource().
QScopedPointer<QQuickView> view { new QQuickView };
view->setInitialProperties({"x, 100"}, {"width", 50});
view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show(); Примечание: Вы можете использовать эту функцию только для инициализации свойств верхнего уровня.
Примечание: Эта функция должна вызываться всегда перед setSource, так как она не оказывает никакого эффекта, после того как компонент стал Ready.
Функция была добавлена в Qt 5.14.
См. также QQmlComponent::createWithInitialProperties().
[slot] void QQuickView::setSource(const QUrl &url)
Устанавливает источник в url, загружает компонент QML и инициализирует его.
Убедитесь, что предоставленный URL-адрес полный и корректный, в частности, используйте QUrl::fromLocalFile(), при загрузке файла из локальной файловой системы.
Вызов этого метода несколько раз с тем же url приведет к повторной инициализации компонента QML.
Примечание: Функция-сеттер для свойства source.
См. также source().
[signal] void QQuickView::statusChanged(QQuickView::Status status)
Этот сигнал испускается, когда текущий статус компонента изменяется.
Примечание: Сигнал уведомления для свойства status.
[override virtual] QQuickView::~QQuickView()
Уничтожает QQuickView.
QQmlEngine *QQuickView::engine() const
Возвращает указатель на QQmlEngine, используемый для инициализации QML-компонентов.
QList<QQmlError> QQuickView::errors() const
Возвращает список ошибок, возникших во время последней операции компиляции или создания. Когда статус не Error, возвращается пустой список.
QSize QQuickView::initialSize() const
Возвращает начальный размер корневого объекта.
Если resizeMode равен QQuickItem::SizeRootObjectToView, корневой объект будет изменён на размер вида. initialSize содержит размер корневого объекта перед изменением размера.
[override virtual protected] void QQuickView::keyPressEvent(QKeyEvent *e)
Переопределяет: QQuickWindow::keyPressEvent(QKeyEvent *e).
[override virtual protected] void QQuickView::keyReleaseEvent(QKeyEvent *e)
Переопределяет: QQuickWindow::keyReleaseEvent(QKeyEvent *e).
[override virtual protected] void QQuickView::mouseMoveEvent(QMouseEvent *e)
Переопределяет: QQuickWindow::mouseMoveEvent(QMouseEvent *event).
[override virtual protected] void QQuickView::mousePressEvent(QMouseEvent *e)
Переопределяет: QQuickWindow::mousePressEvent(QMouseEvent *event).
[override virtual protected] void QQuickView::mouseReleaseEvent(QMouseEvent *e)
Переопределяет: QQuickWindow::mouseReleaseEvent(QMouseEvent *event).
QQmlContext *QQuickView::rootContext() const
Эта функция возвращает корень иерархии контекстов. Каждый QML-компонент инициализируется в QQmlContext. QQmlContext'ы необходимы для передачи данных QML-компонентам. В QML контексты организованы иерархически, и эта иерархия управляется QQmlEngine.
QQuickItem *QQuickView::rootObject() const
Возвращает корневой элемент вида.
QUrl QQuickView::source() const
Возвращает URL-адрес источника, если он установлен.
Примечание: Функция-геттер для свойства source.
См. также setSource().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qquickview.html