Spec-Zone.ru › Qt 6.0

Класс QObjectBindableProperty

шаблон <typename Class, typename T, auto Offset, auto Signal> class QObjectBindableProperty

Класс QObjectBindableProperty — это шаблонный класс, который позволяет автоматически связывать свойства со значениями свойств, хранящимися в классах, производных от QObject. Подробнее...

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

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

QObjectBindableProperty(Class *owner, QPropertyBinding<T> &&binding)
QObjectBindableProperty(Class *owner, const QPropertyBinding<T> &binding)
QObjectBindableProperty(Functor &&f)
QObjectBindableProperty(T &&initialValue)
QObjectBindableProperty(const T &initialValue)
QObjectBindableProperty()
~QObjectBindableProperty()
QPropertyBinding<T> binding() const
bool hasBinding() 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(QObjectBindableProperty::parameter_type newValue)
void setValue(QObjectBindableProperty::rvalue_ref newValue)
QPropertyChangeHandler<Functor> subscribe(Functor f)
QPropertyBinding<T> takeBinding()
QObjectBindableProperty::parameter_type value() const

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

QObjectBindableProperty — это универсальный контейнер, который хранит экземпляр T и ведет себя в основном как QProperty. Дополнительные шаблонные параметры используются для идентификации окружающего класса и члена функции этого класса. Член функции будет вызываться всякий раз, когда изменяется значение, хранящееся в свойстве.

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

QObjectBindableProperty обычно не используется напрямую, вместо этого его экземпляр создается с помощью макроса Q_BINDABLE_PROPERTY_DATA.

Используйте макрос Q_BINDABLE_PROPERTY в объявлении класса для объявления свойства как связываемого.

class MyClass : public QObject
{
    \Q_OBJECT
    Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged BINDABLE bindableX)
public:
    int x() const { return xProp; }
    void setX(int x) { xProp = x; }
    Bindable<int> bindableX() { return QBindable<int>(&xProp); }

signals:
    void xChanged();

private:
    // Declare the instance of the bindable property data.
    Q_OBJECT_BINDABLE_PROPERTY(MyClass, int, xProp, &MyClass::xChanged)
};

Если свойство не требует уведомления об изменении, можно опустить «NOFITY xChanged» в макросе Q_PROPERTY, а также последний аргумент макроса Q_OBJECT_BINDABLE_PROPERTY.

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

void QObjectBindableProperty::setValue(QObjectBindableProperty::parameter_type newValue)

void QObjectBindableProperty::setValue(QObjectBindableProperty::rvalue_ref newValue)

Присваивает newValue этому свойству и удаляет связанное с свойством привязка, если она есть. Если в результате значение свойства изменилось, вызывается функция обратного вызова на owner.

[default] QObjectBindableProperty::QObjectBindableProperty(Class *owner, QPropertyBinding<T> &&binding)

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

[default] QObjectBindableProperty::QObjectBindableProperty(Class *owner, const QPropertyBinding<T> &binding)

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

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

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

QObjectBindableProperty::QObjectBindableProperty(T &&initialValue)

Перемещающее создание свойства со значениями initialValue.

QObjectBindableProperty::QObjectBindableProperty(const T &initialValue)

Конструирует свойство со значением initialValue.

QObjectBindableProperty::QObjectBindableProperty()

Конструирует свойство со значением по умолчанию экземпляра T.

[default] QObjectBindableProperty::~QObjectBindableProperty()

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

QPropertyBinding<T> QObjectBindableProperty::binding() const

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

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

bool QObjectBindableProperty::hasBinding() const

Возвращает true, если свойство связано с привязкой; в противном случае — false.

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

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

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

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

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

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

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

bool QObjectBindableProperty::setBinding(const QUntypedPropertyBinding &newBinding)

Это перегруженная функция.

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

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

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

Это перегруженная функция.

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

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

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

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

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

QPropertyBinding<T> QObjectBindableProperty::takeBinding()

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

QObjectBindableProperty::parameter_type QObjectBindableProperty::value() const

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

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

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

Spec-Zone.ru

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