Spec-Zone.ru › Qt

Класс QProperty

шаблон <typename T> класс QProperty

Класс QProperty — это шаблонный класс, который обеспечивает автоматическую привязку свойств. Подробнее...

Заголовок: #include <QProperty>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
С тех пор: Qt 6.0
Наследует: QPropertyData
  • Список всех членов, включая наследуемые

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

QProperty(T &&initialValue)
QProperty(const T &initialValue)
QProperty(Functor &&f)
QProperty(const QPropertyBinding<T> &binding)
QProperty()
QProperty<T> & operator=(const QPropertyBinding<T> &newBinding)
~QProperty()
QPropertyNotifier addNotifier(Functor f)
QPropertyBinding<T> binding() const
QPropertyChangeHandler<Functor> onValueChanged(Functor f)
QPropertyBinding<T> setBinding(const QPropertyBinding<T> &newBinding)
bool setBinding(const QUntypedPropertyBinding &newBinding)
QPropertyBinding<T> setBinding(Functor f)
void setValue(QProperty::rvalue_ref newValue)
void setValue(QProperty::parameter_type newValue)
QPropertyChangeHandler<Functor> subscribe(Functor f)
QPropertyBinding<T> takeBinding()
QProperty::parameter_type value() const
QProperty<T> & operator=(QProperty::rvalue_ref newValue)
QProperty<T> & operator=(QProperty::parameter_type newValue)

Связанные нечлены

void beginPropertyUpdateGroup()
void endPropertyUpdateGroup()

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

QProperty<T> — один из классов, реализующих связываемые свойства Qt. Это контейнер, который хранит экземпляр T. Вы можете назначить ему значение и прочитать его с помощью функции value() или оператора преобразования T. Вы также можете привязать свойство к выражению, которое динамически вычисляет значение, выражение привязки. Оно представлено лямбда-выражением C++ и может использоваться для выражения взаимосвязей между различными свойствами в вашем приложении.

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

QProperty<T> &QProperty::operator=(QProperty::parameter_type newValue)

QProperty<T> &QProperty::operator=(QProperty::rvalue_ref newValue)

Назначает newValue этому свойству и возвращает ссылку на это QProperty.

void QProperty::setValue(QProperty::parameter_type newValue)

void QProperty::setValue(QProperty::rvalue_ref newValue)

Назначает newValue этому свойству и удаляет связанную с ним привязку, если она существует.

[default] QProperty::QProperty(T &&initialValue)

Создаёт свойство с предоставленным initialValue путём перемещения.

[default] QProperty::QProperty(const T &initialValue)

Создаёт свойство с предоставленным initialValue.

шаблон <typename Functor> QProperty::QProperty(Functor &&f)

Создаёт свойство, связанное с предоставленным выражением привязки f. В первый раз, когда значение свойства читается, выражение привязки вычисляется. Всякий раз, когда изменяется зависимость привязки, привязка будет повторно вычисляться в следующий раз, когда значение этого свойства будет читаться.

QProperty::QProperty(const QPropertyBinding<T> &binding)

Создаёт свойство, связанное с предоставленным выражением binding. В первый раз, когда значение свойства читается, выражение привязки вычисляется. Всякий раз, когда изменяется зависимость привязки, привязка будет повторно вычисляться в следующий раз, когда значение этого свойства будет читаться.

QProperty::QProperty()

Создаёт свойство с объектом T по умолчанию.

[default] QProperty<T> &QProperty::operator=(const QPropertyBinding<T> &newBinding)

Связывает значение этого свойства с предоставленным выражением newBinding и возвращает ссылку на это свойство. В первый раз, когда значение свойства читается, выражение привязки вычисляется. Всякий раз, когда изменяется зависимость привязки, привязка будет повторно вычисляться в следующий раз, когда значение этого свойства будет читаться.

QProperty::~QProperty()

Уничтожает свойство.

шаблон <typename Functor> QPropertyNotifier QProperty::addNotifier(Functor f)

Подписывает предоставленный функтор f как обратный вызов, который вызывается всякий раз, когда значение свойства изменяется.

Обратный вызов f должен быть типом, имеющим обычный оператор вызова () без параметров. Это означает, что вы можете предоставить лямбда-выражение C++, std::function или даже пользовательскую структуру с оператором вызова.

Возвращаемый объект обработчика изменений свойства отслеживает подписку. Когда он выходит из области видимости, обратный вызов отписывается.

В некоторых случаях этот метод проще использовать, чем onValueChanged(), так как возвращаемый объект не является шаблоном. Таким образом, его можно легче хранить, например, как член в классе.

См. также onValueChanged() и subscribe().

QPropertyBinding<T> QProperty::binding() const

Возвращает выражение привязки, связанное с этим свойством. Если такой ассоциации не существует, будет возвращён QPropertyBinding<T> по умолчанию.

См. также setBinding().

шаблон <typename Functor> QPropertyChangeHandler<Functor> QProperty::onValueChanged(Functor f)

Регистрирует предоставленный функтор f как обратный вызов, который должен вызываться всякий раз, когда значение свойства изменяется. При каждом изменении значения обработчик вызывается либо немедленно, либо откладывается, в зависимости от контекста.

Обратный вызов f должен быть типом, имеющим обычный оператор вызова () без параметров. Это означает, что вы можете предоставить лямбда-выражение C++, std::function или даже пользовательскую структуру с оператором вызова.

Возвращаемый объект обработчика изменений свойств отслеживает регистрацию. При выходе из области видимости обратный вызов аннулируется.

QPropertyBinding<T> QProperty::setBinding(const QPropertyBinding<T> &newBinding)

Связывает значение этого свойства с предоставленным выражением newBinding и возвращает ранее связанное связывание. В первый раз при чтении значения свойства связывание вычисляется. Всякий раз, когда зависимость связывания изменяется, связывание будет перевычисляться при следующем чтении значения этого свойства.

См. также binding().

bool QProperty::setBinding(const QUntypedPropertyBinding &newBinding)

Это перегруженный метод.

Связывает значение этого свойства с предоставленным выражением newBinding. В первый раз при чтении значения свойства связывание вычисляется. Всякий раз, когда зависимость связывания изменяется, связывание будет перевычисляться при следующем чтении значения этого свойства.

Возвращает true, если тип этого свойства совпадает с типом возвращаемой функцией связывания; в противном случае возвращает false.

template <typename Functor> QPropertyBinding<T> QProperty::setBinding(Functor f)

Это перегруженный метод.

Связывает значение этого свойства с предоставленным функтором f и возвращает ранее связанное связывание. В первый раз при чтении значения свойства связывание вычисляется, вызывая оператор вызова () функтора f. Всякий раз, когда зависимость связывания изменяется, связывание будет перевычисляться при следующем чтении значения этого свойства.

См. также Формулирование связывания свойств.

template <typename Functor> QPropertyChangeHandler<Functor> QProperty::subscribe(Functor f)

Подписывает предоставленный функтор f в качестве обратного вызова, который вызывается немедленно и всякий раз, когда значение свойства изменяется в будущем. При каждом изменении значения обработчик вызывается либо немедленно, либо с задержкой, в зависимости от контекста.

Обратный вызов f должен быть типом, который может быть скопирован и имеет обычный оператор вызова () без параметров. Это означает, что вы можете предоставить лямбда-выражение C++, std::function или даже пользовательскую структуру с оператором вызова.

Возвращаемый объект обработчика изменений свойства отслеживает подписку. При выходе из области видимости обратный вызов отписывается.

QPropertyBinding<T> QProperty::takeBinding()

Отсоединяет выражение связывания от этого свойства и возвращает его. После вызова этой функции значение свойства изменится только при присвоении нового значения или при установке нового связывания.

QProperty::parameter_type QProperty::value() const

Возвращает значение свойства. Это может вычислить выражение связывания, связанное с этим свойством, прежде чем вернуть значение.

См. также setValue().

Связанные нечленённые элементы

[since 6.2] void beginPropertyUpdateGroup()

Отмечает начало группы обновлений свойства. Внутри этой группы изменение свойства не обновляет немедленно зависимые свойства и не вызывает уведомлений об изменении. Вместо этого они откладываются до завершения группы с помощью вызова endPropertyUpdateGroup.

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

Примечание: Уведомления об изменениях отправляются только после того, как все значения свойств, затронутые группой, будут обновлены до новых значений. Это позволяет восстановить инвариант класса, если необходимо обновить несколько свойств, предотвращая оповещение внешнего наблюдателя о несогласованном состоянии.

Эта функция была введена в Qt 6.2.

См. также Qt::endPropertyUpdateGroup.

[since 6.2] void endPropertyUpdateGroup()

Завершает группу обновлений свойства. Если внешняя группа завершена, теперь происходят отложенные вычисления связывания и уведомления.

Предупреждение: Вызов endPropertyUpdateGroup без предшествующего вызова beginPropertyUpdateGroup приводит к неопределённому поведению.

Эта функция была введена в Qt 6.2.

См. также Qt::beginPropertyUpdateGroup.

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

Spec-Zone.ru

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