Spec-Zone.ru › Qt 5.11

Класс QQmlParserStatus

Класс QQmlParserStatus предоставляет обновления о состоянии парсера QML. Подробнее...

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

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

virtual void classBegin() = 0
virtual void componentComplete() = 0

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

Класс QQmlParserStatus предоставляет обновления о состоянии парсера QML.

QQmlParserStatus предоставляет механизм для классов, созданных с помощью QQmlEngine, получать уведомления в ключевые моменты их создания.

Этот класс часто используется для оптимизации, так как позволяет отложить дорогостоящую операцию до тех пор, пока все свойства объекта не будут установлены. Например, элемент Text QML использует состояние парсера для откладывания вычисления макета текста до тех пор, пока все его свойства не будут установлены (мы не хотим вычислять макет, когда присваивается text, а затем перевычислять, когда присваивается font, и так далее).

Обратите внимание, что методы QQmlParserStatus вызываются только тогда, когда класс создается с помощью QQmlEngine. Если вы создаете тот же класс напрямую из C++, эти методы не будут вызываться автоматически. Чтобы избежать этой проблемы, рекомендуется начинать откладывание операций с classBegin, а не с первоначального создания вашего класса. Это по-прежнему предотвратит несколько перевычислений во время первоначального присваивания связей в QML, но не будет откладывать операции, вызванные из C++.

Для использования QQmlParserStatus необходимо унаследовать как от производного класса QObject, так и от QQmlParserStatus, и использовать макрос Q_INTERFACES().

class MyObject : public QObject, public QQmlParserStatus
{
    Q_OBJECT
    Q_INTERFACES(QQmlParserStatus)

public:
    MyObject(QObject *parent = 0);
    ...
    void classBegin();
    void componentComplete();
}

Версия этого класса для Qt Quick 1 называется QDeclarativeParserStatus.

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

[pure virtual] void QQmlParserStatus::classBegin()

Вызывается после создания класса, но до установки каких-либо свойств.

[pure virtual] void QQmlParserStatus::componentComplete()

Вызывается после завершения корневого компонента, вызвавшего это создание. На этом этапе все статические значения и значения связей были присвоены классу.

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

Spec-Zone.ru

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