Класс 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.14/qqmlparserstatus.html