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