Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QDeclarativeExpression Class Reference

The QDeclarativeExpression class evaluates JavaScript in a QML context. More...

 #include <QDeclarativeExpression>

Inherits: QObject.

This class was introduced in Qt 4.7.

Public Functions

QDeclarativeExpression ()
QDeclarativeExpression ( QDeclarativeContext * ctxt, QObject * scope, const QString & expression, QObject * parent = 0 )
virtual ~QDeclarativeExpression ()
void clearError ()
QDeclarativeContext * context () const
QDeclarativeEngine * engine () const
QDeclarativeError error () const
QVariant evaluate ( bool * valueIsUndefined = 0 )
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 )
QString sourceFile () const
  • 29 public functions inherited from QObject

Signals

void valueChanged ()

Additional Inherited Members

  • 1 property inherited from QObject
  • 1 public slot inherited from QObject
  • 5 static public members inherited from QObject
  • 7 protected functions inherited from QObject

Detailed Description

The QDeclarativeExpression class evaluates JavaScript in a QML context.

For example, given a file main.qml like this:

 import QtQuick 1.0

 Item {
     width: 200; height: 200
 }

The following code evaluates a JavaScript expression in the context of the above QML:

 QDeclarativeEngine *engine = new QDeclarativeEngine;
 QDeclarativeComponent component(engine, QUrl::fromLocalFile("main.qml"));

 QObject *myObject = component.create();
 QDeclarativeExpression *expr = new QDeclarativeExpression(engine->rootContext(), myObject, "width * 2");
 int result = expr->evaluate().toInt();  // result = 400

Member Function Documentation

QDeclarativeExpression::QDeclarativeExpression ()

Create an invalid QDeclarativeExpression.

As the expression will not have an associated QDeclarativeContext, this will be a null expression object and its value will always be an invalid QVariant.

QDeclarativeExpression::QDeclarativeExpression ( QDeclarativeContext * ctxt, QObject * scope, const QString & expression, QObject * parent = 0 )

Create a QDeclarativeExpression object that is a child of parent.

The expression JavaScript will be executed in the ctxt QDeclarativeContext. If specified, the scope object's properties will also be in scope during the expression's execution.

QDeclarativeExpression::~QDeclarativeExpression () [virtual]

Destroy the QDeclarativeExpression instance.

void QDeclarativeExpression::clearError ()

Clear any expression errors. Calls to hasError() following this will return false.

See also hasError() and error().

QDeclarativeContext * QDeclarativeExpression::context () const

Returns the QDeclarativeContext this expression is associated with, or 0 if there is no association or the QDeclarativeContext has been destroyed.

QDeclarativeEngine * QDeclarativeExpression::engine () const

Returns the QDeclarativeEngine this expression is associated with, or 0 if there is no association or the QDeclarativeEngine has been destroyed.

QDeclarativeError QDeclarativeExpression::error () const

Return any error from the last call to evaluate(). If there was no error, this returns an invalid QDeclarativeError instance.

See also hasError() and clearError().

QVariant QDeclarativeExpression::evaluate ( bool * valueIsUndefined = 0 )

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 hasError() and error().

QString QDeclarativeExpression::expression () const

Returns the expression string.

See also setExpression().

bool QDeclarativeExpression::hasError () const

Returns true if the last call to evaluate() resulted in an error, otherwise false.

See also error() and clearError().

int QDeclarativeExpression::lineNumber () const

Returns the source file line number for this expression. The source location must have been previously set by calling setSourceLocation().

bool QDeclarativeExpression::notifyOnValueChanged () const

Returns true if the valueChanged() signal is emitted when the expression's evaluated value changes.

See also setNotifyOnValueChanged().

QObject * QDeclarativeExpression::scopeObject () const

Returns the expression's scope object, if provided, otherwise 0.

In addition to data provided by the expression's QDeclarativeContext, the scope object's properties are also in scope during the expression's evaluation.

void QDeclarativeExpression::setExpression ( const QString & expression )

Set the expression to expression.

See also expression().

void QDeclarativeExpression::setNotifyOnValueChanged ( bool notifyOnChange )

Sets whether the valueChanged() signal is emitted when the expression's evaluated value changes.

If notifyOnChange is true, the QDeclarativeExpression will monitor properties involved in the expression's evaluation, and emit QDeclarativeExpression::valueChanged() 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), the QDeclarativeExpression will not montitor properties involved in the expression's evaluation, and QDeclarativeExpression::valueChanged() will never be emitted. This is more efficient if an application wants a "one off" evaluation of the expression.

See also notifyOnValueChanged().

void QDeclarativeExpression::setSourceLocation ( const QString & url, int line )

Set the location of this expression to line of url. This information is used by the script engine.

QString QDeclarativeExpression::sourceFile () const

Returns the source file URL for this expression. The source location must have been previously set by calling setSourceLocation().

void QDeclarativeExpression::valueChanged () [signal]

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 QDeclarativeExpression::evaluate()) before this signal will be emitted.

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 53
  2. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  3. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  4. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. La rubrique Qt a besoin de vous ! 1
Page suivante

Le blog Digia au hasard

Logo

Déploiement d'applications Qt Commercial sur les tablettes Windows 8

Le blog Digia est l'endroit privilégié pour la communication sur l'édition commerciale de Qt, où des réponses publiques sont apportées aux questions les plus posées au support. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web