QQmlExpression Class
La classe QQmlExpression évalue JavaScript dans un contexte QML. Plus d'informations...
| En-tête : | #include <QQmlExpression> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Qml)target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake : | QT += qml |
| Héritages : | QObject |
Fonctions publiques
| QQmlExpression() | |
| QQmlExpression(QQmlContext *ctxt, QObject *scope, const QString &expression, QObject *parent = nullptr) | |
| QQmlExpression(const QQmlScriptString &script, QQmlContext *ctxt = nullptr, QObject *scope = nullptr, QObject *parent = nullptr) | |
| virtual | ~QQmlExpression() override |
| void | clearError() |
| int | columnNumber() const |
| QQmlContext * | context() const |
| QQmlEngine * | engine() const |
| QQmlError | error() const |
| QVariant | evaluate(bool *valueIsUndefined = nullptr) |
| QString | expression() const |
| bool | hasError() const |
| int | lineNumber() const |
| bool | notifyOnValueChanged() const |
| QObject * | scopeObject() const |
| void | setExpression(const QString &expression) |
| void | setNotifyOnValueChanged(bool notifyOnChange) |
| void | setSourceLocation(const QString &url, int line, int column = 0) |
| QString | sourceFile() const |
Signaux
| void | valueChanged() |
Description détaillée
Par exemple, étant donné un fichier main.qml comme celui-ci :
import QtQuick 2.0 Item { width: 200; height: 200 }
Le code suivant évalue une expression JavaScript dans le contexte du QML ci-dessus :
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
Documentation des fonctions membres
QQmlExpression::QQmlExpression()
Créer une QQmlExpression invalide.
Comme l'expression n'aura pas de QQmlContext associé, il s'agira d'un objet d'expression nul et sa valeur sera toujours un QVariant invalide.
QQmlExpression::QQmlExpression(QQmlContext *ctxt, QObject *scope, const QString &expression, QObject *parent = nullptr)
Créez un objet QQmlExpression qui est un enfant de parent.
Le JavaScript expression sera exécuté dans l'objet ctxt QQmlContext . Si cela est spécifié, les propriétés de l'objet scope seront également dans le champ d'application pendant l'exécution de l'expression.
[explicit] QQmlExpression::QQmlExpression(const QQmlScriptString &script, QQmlContext *ctxt = nullptr, QObject *scope = nullptr, QObject *parent = nullptr)
Créer un objet QQmlExpression qui est un enfant de parent.
Le site script fournit l'expression à évaluer, le contexte dans lequel l'évaluer et l'objet scope avec lequel l'évaluer. S'ils sont fournis, ctxt et scope remplaceront le contexte et l'objet scope fournis par script.
Voir également QQmlScriptString.
[override virtual noexcept] QQmlExpression::~QQmlExpression()
Détruire l'instance QQmlExpression.
void QQmlExpression::clearError()
Effacer toute erreur d'expression. Les appels à hasError() qui suivent renverront false.
Voir aussi hasError() et error().
int QQmlExpression::columnNumber() const
Renvoie le numéro de colonne du fichier source pour cette expression. L'emplacement du fichier source doit avoir été défini au préalable en appelant setSourceLocation().
QQmlContext *QQmlExpression::context() const
Renvoie l'adresse QQmlContext à laquelle cette expression est associée, ou nullptr s'il n'y a pas d'association ou si l'adresse QQmlContext a été détruite.
QQmlEngine *QQmlExpression::engine() const
Renvoie l'adresse QQmlEngine à laquelle cette expression est associée, ou nullptr s'il n'y a pas d'association ou si l'adresse QQmlEngine a été détruite.
QQmlError QQmlExpression::error() const
Renvoie toute erreur survenue lors du dernier appel à evaluate(). S'il n'y a pas eu d'erreur, cela renvoie une instance QQmlError invalide.
Voir aussi hasError() et clearError().
QVariant QQmlExpression::evaluate(bool *valueIsUndefined = nullptr)
Évalue l'expression et renvoie le résultat de l'évaluation ou un QVariant invalide si l'expression n'est pas valide ou si elle contient une erreur.
valueIsUndefined est défini à true si l'expression a produit une valeur indéfinie.
Voir également hasError() et error().
QString QQmlExpression::expression() const
Renvoie la chaîne d'expression.
Voir aussi setExpression().
bool QQmlExpression::hasError() const
Retourne true si le dernier appel à evaluate() a donné lieu à une erreur, sinon false.
Voir aussi error() et clearError().
int QQmlExpression::lineNumber() const
Renvoie le numéro de ligne du fichier source pour cette expression. L'emplacement du fichier source doit avoir été défini au préalable en appelant setSourceLocation().
bool QQmlExpression::notifyOnValueChanged() const
Retourne vrai si le signal valueChanged() est émis lorsque la valeur évaluée de l'expression change.
Voir aussi setNotifyOnValueChanged().
QObject *QQmlExpression::scopeObject() const
Renvoie l'objet scope de l'expression, s'il est fourni, sinon 0.
En plus des données fournies par l'expression QQmlContext, les propriétés de l'objet scope sont également dans le champ d'application pendant l'évaluation de l'expression.
void QQmlExpression::setExpression(const QString &expression)
Définir l'expression à expression.
Voir aussi expression().
void QQmlExpression::setNotifyOnValueChanged(bool notifyOnChange)
Définit si le signal valueChanged() est émis lorsque la valeur évaluée de l'expression change.
Si notifyOnChange est vrai, QQmlExpression surveille les propriétés impliquées dans l'évaluation de l'expression et émet QQmlExpression::valueChanged() si elles ont changé. Cela permet à une application de s'assurer que toute valeur associée au résultat de l'expression reste à jour.
Si notifyOnChange est faux (valeur par défaut), QQmlExpression ne surveille pas les propriétés impliquées dans l'évaluation de l'expression et QQmlExpression::valueChanged() n'est jamais émis. Ceci est plus efficace si une application veut une évaluation "unique" de l'expression.
Voir aussi notifyOnValueChanged().
void QQmlExpression::setSourceLocation(const QString &url, int line, int column = 0)
Définissez l'emplacement de cette expression à line et column de url. Ces informations sont utilisées par le moteur de script.
QString QQmlExpression::sourceFile() const
Renvoie l'URL du fichier source pour cette expression. L'emplacement du fichier source doit avoir été défini au préalable en appelant setSourceLocation().
[signal] void QQmlExpression::valueChanged()
Emis chaque fois que la valeur de l'expression change par rapport à la dernière fois qu'elle a été évaluée. L'expression doit avoir été évaluée au moins une fois (en appelant QQmlExpression::evaluate()) avant que ce signal ne soit émis.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.