Expression
- class Expression(*args, **kwargs)
Subclasses: CClosureExpression
, ClosureExpression
, ConstantExpression
, ObjectExpression
, PropertyExpression
- Constructors:
Expression(**properties)
Methods
- class Expression
- bind(target: Object, property: str, this_: Object | None = None) ExpressionWatch
Bind
target
’s property namedproperty
toself
.The value that
self
evaluates to is set via:func:`~gi.repository.GObject.GObject.Object.set`
ontarget
. This is repeated wheneverself
changes to ensure that the object’s property stays synchronized withself
.If
self
’s evaluation fails,target
’sproperty
is not updated. You can ensure that this doesn’t happen by using a fallback expression.Note that this function takes ownership of
self
. If you want to keep it around, you shouldref
it beforehand.- Parameters:
target – the target object to bind to
property – name of the property on
target
to bind tothis – the this argument for the evaluation of
self
- evaluate(this_: Object | None, value: Any) bool
Evaluates the given expression and on success stores the result in
value
.The
GType
ofvalue
will be the type given byget_value_type
.It is possible that expressions cannot be evaluated - for example when the expression references objects that have been destroyed or set to
NULL
. In that casevalue
will remain empty andFALSE
will be returned.- Parameters:
this – the this argument for the evaluation
value – an empty
GValue
- get_value_type() type
Gets the
GType
that this expression evaluates to.This type is constant and will not change over the lifetime of this expression.
- is_static() bool
Checks if the expression is static.
A static expression will never change its result when
evaluate
is called on it with the same arguments.That means a call to
watch
is not necessary because it will never trigger a notify.
- watch(this_: Object | None, notify: Callable[[...], None], *user_data: Any) ExpressionWatch
Watch the given
expression
for changes.The
notify
function will be called whenever the evaluation ofself
may have changed.GTK cannot guarantee that the evaluation did indeed change when the
notify
gets invoked, but it guarantees the opposite: When it did in fact change, thenotify
will be invoked.- Parameters:
this – the
this
argument to watchnotify – callback to invoke when the expression changes
user_data – user data to pass to the
notify
callback