Класс QQmlParserStatus
Класс QQmlParserStatus предоставляет обновления о состоянии парсера QML. Подробнее...
| Заголовок: | #include <QQmlParserStatus> |
| qmake: | QT += qml |
| С тех пор: | Qt 5.0 |
| Наследуется от: |
Открытые функции
| виртуальный void | classBegin() = 0 |
| виртуальный void | componentComplete() = 0 |
Подробное описание
Класс QQmlParserStatus предоставляет обновления о состоянии парсера QML.
QQmlParserStatus предоставляет механизм для классов, созданных с помощью QQmlEngine, получать уведомления в ключевые моменты их создания.
Этот класс часто используется в целях оптимизации, так как он позволяет отложить дорогостоящую операцию до тех пор, пока все свойства не будут установлены на объекте. Например, элемент QML Text использует статус парсера для откладывания вычисления расположения текста до тех пор, пока все его свойства не будут установлены (мы не хотим вычислять расположение при присвоении значения text, а затем повторно вычислять при присвоении font, и снова пересчитывать при присвоении width и так далее).
Обратите внимание, что методы 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.6/qqmlparserstatus.html