IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QObjectBindableProperty Class

The https:// class is a template class that enables automatic property bindings for property data stored in https:// derived classes.

This class was introduced in Qt 6.0.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QObjectBindableProperty Class▲

  • Header: QObjectBindableProperty

  • Since: Qt 6.0

  • CMake:

    find_package(Qt6 REQUIRED COMPONENTS Core)

    target_link_libraries(mytarget PRIVATE Qt6::Core)

  • qmake: QT += core

  • Inherits: https://

  • Group: QObjectBindableProperty is part of tools

Detailed Description▲

https:// is a generic container that holds an instance of T and behaves mostly like https://. The extra template parameters are used to identify the surrounding class and a member function of that class. The member function will be called whenever the value held by the property changes.

You can use https:// to add binding support to code that uses https://. The getter and setter methods are easy to adapt for accessing a https:// rather than the plain value. In order to invoke the change signal on property changes, use https:// and pass the change signal as a callback.

https:// is usually not used directly, instead an instance of it is created by using the https:// macro.

Use the https:// macro in the class declaration to declare the property as bindable.

 
Sélectionnez
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; }
    QBindable<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)
};

If the property does not need a changed notification, you can leave out the "NOFITY xChanged" in the https:// macro as well as the last argument of the https:// macro.

Member Function Documentation▲

 

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

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

Assigns newValue to this property and removes the property's associated binding, if present. If the property value changes as a result, calls the Callback function on owner.

QObjectBindableProperty::QObjectBindableProperty()▲

Constructs a property with a default constructed instance of T.

[explicit] QObjectBindableProperty::QObjectBindableProperty(const T &initialValue)▲

Constructs a property with the provided initialValue.

[explicit] QObjectBindableProperty::QObjectBindableProperty(T &&initialValue)▲

Move-Constructs a property with the provided initialValue.

[explicit] QObjectBindableProperty::QObjectBindableProperty(Functor &&f)▲

Constructs a property that is tied to the provided binding expression f. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.

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

Constructs a property that is tied to the provided binding expression. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read. When the property value changes owner is notified via the Callback function.

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

Constructs a property that is tied to the provided binding expression. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read. When the property value changes owner is notified via the Callback function.

[default] QObjectBindableProperty::~QObjectBindableProperty()▲

Destroys the property.

QPropertyBinding<T> QObjectBindableProperty::binding() const▲

Returns the binding expression that is associated with this property. A default constructed QPropertyBinding<T> will be returned if no such association exists.

See Also▲

See also https://()

bool QObjectBindableProperty::hasBinding() const▲

Returns true if the property is associated with a binding; false otherwise.

QPropertyChangeHandler<Functor> QObjectBindableProperty::onValueChanged(Functor f)▲

Registers the given functor f as a callback that shall be called whenever the value of the property changes.

The callback f is expected to be a type that has a plain call operator () without any parameters. This means that you can provide a C++ lambda expression, an std::function or even a custom struct with a call operator.

The returned property change handler object keeps track of the registration. When it goes out of scope, the callback is de-registered.

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

Associates the value of this property with the provided newBinding expression and returns the previously associated binding. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read. When the property value changes, the owner is notified via the Callback function.

See Also▲

See also https://()

bool QObjectBindableProperty::setBinding(const QUntypedPropertyBinding &newBinding)▲

This is an overloaded function.

Associates the value of this property with the provided newBinding expression. The first time the property value is read, the binding is evaluated. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.

Returns true if the type of this property is the same as the type the binding function returns; false otherwise.

QPropertyBinding<T> QObjectBindableProperty::setBinding(Functor f)▲

This is an overloaded function.

Associates the value of this property with the provided functor f and returns the previously associated binding. The first time the property value is read, the binding is evaluated by invoking the call operator () of f. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read. When the property value changes, the owner is notified via the Callback function.

QPropertyChangeHandler<Functor> QObjectBindableProperty::subscribe(Functor f)▲

Subscribes the given functor f as a callback that is called immediately and whenever the value of the property changes in the future.

The callback f is expected to be a type that has a plain call operator () without any parameters. This means that you can provide a C++ lambda expression, an std::function or even a custom struct with a call operator.

The returned property change handler object keeps track of the subscription. When it goes out of scope, the callback is unsubscribed.

QPropertyBinding<T> QObjectBindableProperty::takeBinding()▲

Disassociates the binding expression from this property and returns it. After calling this function, the value of the property will only change if you assign a new value to it, or when a new binding is set.

QObjectBindableProperty::parameter_type QObjectBindableProperty::value() const▲

Returns the value of the property. This may evaluate a binding expression that is tied to this property, before returning the value.

See Also▲

See also https://()

Macro Documentation▲

 

[since 6.0] Q_OBJECT_BINDABLE_PROPERTY(containingClass, type, name, signal)▲

Declares a https:// inside containingClass of type type with name name. If the optional argument signal is given, this signal will be emitted when the property is marked dirty.

This macro was introduced in Qt 6.0.

See Also▲

See also https://, Qt Bindable Properties

[since 6.0] Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(containingClass, type, name, initialvalue, signal)▲

Declares a https:// inside containingClass of type type with name name which is initialized to initialvalue. If the optional argument signal is given, this signal will be emitted when the property is marked dirty.

This macro was introduced in Qt 6.0.

See Also▲

See also https://, Qt Bindable Properties

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est disponible sous la licence https:// telle que publiée par la Free Software Foundation.