- All Implemented Interfaces:
QtObjectInterface
Java wrapper for Qt class QProperty
The QProperty class enables automatic property bindings.
Example:
QIntProperty red = new QIntProperty(255);
QIntProperty green = new QIntProperty(0);
QIntProperty blue = new QIntProperty(0);
QIntProperty alpha = new QIntProperty(255);
QProperty<QColor> color = new QProperty<>(QColor.class);
color.setBinding(()->new QColor(red.value(), green.value(), blue.value(), alpha.value()));
color.value(); // = red
red.setValue(0);
green.setValue(255);
color.value(); // = green
For primitive-typed implementations see:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.qt.QtObject
QtObject.QPrivateConstructor
-
Constructor Summary
ConstructorDescriptionConstructs aQVariant
-typed property.QProperty
(QPropertyBinding<T> binding) Constructs a property with the provided binding.QProperty
(QtUtilities.Supplier<T> functor) Constructs a property bound to the providedfunctor
.Constructs a property bound to the providedfunctor
.Constructs a property with the given type.Constructs a property with the provided initialValue.Constructs a property with the given type and initialValue. -
Method Summary
Modifier and TypeMethodDescriptionRegisters the given functor f as a callback that shall be called whenever the value of the bindable changes.binding()
Returns the binding expression that is associated with this property.final T
Returns the data stored in this property.boolean
Checks if the property has a binding.Registers the given functor f as a callback that shall be called whenever the value of the property changes.setBinding
(QPropertyBinding<T> newBinding) Associates the value of this property with the providednewBinding
expression and returns the previously associated binding.boolean
setBinding
(QUntypedPropertyBinding newBinding) Associates the value of this property with the providednewBinding
expression.setBinding
(QtUtilities.Supplier<T> functor) Associates the value of this property with the providedfunctor
and returns the previously associated binding.void
Assigns newValue to this property and removes the property's associated binding, if present.final boolean
Sets the data value stored in this property to val.Subscribes the given functor f as a callback that is called immediately and whenever the value of the property changes in the future.Disassociates the binding expression from this property and returns it.value()
Returns the value of the property.Methods inherited from class io.qt.QtObject
dispose, equals, isDisposed
-
Constructor Details
-
QProperty
Constructs a property with the given type and initialValue. -
QProperty
Constructs a property with the given type. -
QProperty
Constructs a property with the provided initialValue. The property type is extracted frominitialValue
.- Parameters:
initialValue
- initial value must not benull
-
QProperty
public QProperty()Constructs aQVariant
-typed property. -
QProperty
Constructs a property with the provided binding. The property type corresponds to the type ofbinding
.- Parameters:
binding
- must not benull
-
QProperty
Constructs a property bound to the provided
functor
.The property type corresponds to the return type of the
functor
'sSupplier.get()
.- Parameters:
functor
-
-
QProperty
Constructs a property bound to the provided
functor
.The property type corresponds to the return type of the
functor
'sSupplier.get()
.
-
-
Method Details
-
value
Returns the value of the property. This may evaluate a binding expression that is tied to this property, before returning the value.- Returns:
- value
-
setValue
Assigns newValue to this property and removes the property's associated binding, if present.
- Parameters:
newValue
-
-
setBinding
Associates the value of this property with the provided
newBinding
expression and returns the previously associated binding.The binding's value type (
QUntypedPropertyBinding.valueMetaType()
) has to be equals to the property's value typeT
, otherwise the property remains unchanged.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.
- Parameters:
newBinding
-- Returns:
- oldBinding
-
setBinding
Associates the value of this property with the provided
newBinding
expression.The binding's value type (
QUntypedPropertyBinding.valueMetaType()
) has to be equals to the property's value typeT
, otherwise the property remains unchanged and the method returnsfalse
.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.
- Parameters:
newBinding
-- Returns:
- true if types match, false otherwise.
-
setBinding
Associates the value of this property with the provided
functor
and returns the previously associated binding.The first time the property value is read, the binding is evaluated by invoking
Supplier.get()
offunctor
. Whenever a dependency of the binding changes, the binding will be re-evaluated the next time the value of this property is read.- Parameters:
functor
-- Returns:
- oldBinding
-
hasBinding
Checks if the property has a binding.- Returns:
- true if the property has a binding, false otherwise.
-
binding
Returns the binding expression that is associated with this property. A default constructedQPropertyBinding
<T> will be returned if no such association exists.- Returns:
- binding
-
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.
- Returns:
- the removed binding
-
onValueChanged
Registers the given functor f as a callback that shall be called whenever the value of the property changes.
The returned property change handler object keeps track of the registration. As long as the change handler is alive i.e. as long as a reference to the
QPropertyChangeHandler
instance exists, the callback remains installed. When the garbage collection deletes the instance, the callback is de-registered.- Parameters:
f
-- Returns:
- property change handler
- See Also:
-
subscribe
Subscribes the given functor f as a callback that is called immediately and whenever the value of the property changes in the future.- Parameters:
f
-- Returns:
- property change handler
- See Also:
-
addNotifier
Registers the given functor f as a callback that shall be called whenever the value of the bindable changes.
The returned property notifier object keeps track of the registration. As long as the notifier is alive i.e. as long as a reference to the
QPropertyNotifier
instance exists, the callback remains installed. When the garbage collection deletes the instance, the callback is de-registered.- Parameters:
f
-- Returns:
- property notifier
- See Also:
-
getValueBypassingBindings
Returns the data stored in this property.
Note: As this will bypass any binding evaluation it might return an outdated value if a binding is set on this property. Using this method will also not register the property access with any currently executing binding.
- Specified by:
getValueBypassingBindings
in classQPropertyData<T>
- Returns:
- value bypassing bindings
-
setValueBypassingBindings
Sets the data value stored in this property to val.
Note: Using this method will bypass any potential binding registered for this property.
- Specified by:
setValueBypassingBindings
in classQPropertyData<T>
-