PySide6.QtQml.QQmlExpression¶
- class QQmlExpression¶
The
QQmlExpression
class evaluates JavaScript in a QML context. More…Synopsis¶
Methods¶
def
__init__()
def
clearError()
def
columnNumber()
def
context()
def
engine()
def
error()
def
evaluate()
def
expression()
def
hasError()
def
lineNumber()
def
scopeObject()
def
setExpression()
def
sourceFile()
Signals¶
def
valueChanged()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description¶
For example, given a file
main.qml
like this:The following code evaluates a JavaScript expression in the context of the above QML:
QQmlEngine *engine = new QQmlEngine; QQmlComponent component(engine, QUrl::fromLocalFile("main.qml")); QObject *myObject = component.create(); QQmlExpression *expr = new QQmlExpression(engine->rootContext(), myObject, "width * 2"); int result = expr->evaluate().toInt(); // result = 400
- __init__()¶
Create an invalid
QQmlExpression
.As the expression will not have an associated
QQmlContext
, this will be a null expression object and its value will always be an invalid QVariant.- __init__(ctxt, scope, expression[, parent=None])
- Parameters:
ctxt –
QQmlContext
scope –
QObject
expression – str
parent –
QObject
Create a
QQmlExpression
object that is a child ofparent
.The
expression
JavaScript will be executed in thectxt
QQmlContext
. If specified, thescope
object’s properties will also be in scope during the expression’s execution.- __init__(script[, ctxt=None[, scope=None[, parent=None]]])
- Parameters:
script –
QQmlScriptString
ctxt –
QQmlContext
scope –
QObject
parent –
QObject
Create a
QQmlExpression
object that is a child ofparent
.The
script
provides the expression to be evaluated, the context to evaluate it in, and the scope object to evaluate it with. If provided,ctxt
andscope
will override the context and scope object provided byscript
.See also
- clearError()¶
Clear any expression errors. Calls to
hasError()
following this will return false.See also
- columnNumber()¶
- Return type:
int
Returns the source file column number for this expression. The source location must have been previously set by calling
setSourceLocation()
.- context()¶
- Return type:
Returns the
QQmlContext
this expression is associated with, orNone
if there is no association or theQQmlContext
has been destroyed.- engine()¶
- Return type:
Returns the
QQmlEngine
this expression is associated with, orNone
if there is no association or theQQmlEngine
has been destroyed.Return any error from the last call to
evaluate()
. If there was no error, this returns an invalidQQmlError
instance.See also
- evaluate()¶
- Return type:
PyTuple
Evaulates the expression, returning the result of the evaluation, or an invalid QVariant if the expression is invalid or has an error.
valueIsUndefined
is set to true if the expression resulted in an undefined value.See also
- expression()¶
- Return type:
str
Returns the expression string.
See also
- hasError()¶
- Return type:
bool
Returns true if the last call to
evaluate()
resulted in an error, otherwise false.See also
- lineNumber()¶
- Return type:
int
Returns the source file line number for this expression. The source location must have been previously set by calling
setSourceLocation()
.- notifyOnValueChanged()¶
- Return type:
bool
Returns true if the
valueChanged()
signal is emitted when the expression’s evaluated value changes.See also
Returns the expression’s scope object, if provided, otherwise 0.
In addition to data provided by the expression’s
QQmlContext
, the scope object’s properties are also in scope during the expression’s evaluation.- setExpression(expression)¶
- Parameters:
expression – str
Set the expression to
expression
.See also
- setNotifyOnValueChanged(notifyOnChange)¶
- Parameters:
notifyOnChange – bool
Sets whether the
valueChanged()
signal is emitted when the expression’s evaluated value changes.If
notifyOnChange
is true, theQQmlExpression
will monitor properties involved in the expression’s evaluation, and emitvalueChanged()
if they have changed. This allows an application to ensure that any value associated with the result of the expression remains up to date.If
notifyOnChange
is false (default), theQQmlExpression
will not montitor properties involved in the expression’s evaluation, andvalueChanged()
will never be emitted. This is more efficient if an application wants a “one off” evaluation of the expression.See also
- setSourceLocation(fileName, line[, column=0])¶
- Parameters:
fileName – str
line – int
column – int
Set the location of this expression to
line
andcolumn
ofurl
. This information is used by the script engine.- sourceFile()¶
- Return type:
str
Returns the source file URL for this expression. The source location must have been previously set by calling
setSourceLocation()
.- valueChanged()¶
Emitted each time the expression value changes from the last time it was evaluated. The expression must have been evaluated at least once (by calling
evaluate()
) before this signal will be emitted.