IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QScriptable

La classe QScriptable permet d'acc�der � l'environnement Qt Script depuis les fonctions membres C++ de Qt. Plus d'informations...

#include <QScriptable>

Voir la position dans l'arbre des classes.

Description d�taill�e

La classe QScriptable permet d'acc�der � l'environnement Qt Script depuis les fonctions membres C++ de Qt.

Avec QScriptEngine::newQObject(), vous pouvez exposer les signaux, les slots et les propri�t�s de tout QObject (ou sous-classe) au code de script. QScriptable augmente cette fonctionnalit� en donnant � vos membres C++ l'acc�s � l'environnement de Qt Script dans lequel ils sont invoqu�s ; conceptuellement, il est similaire � QObject::sender().

En r�alisant une sous-classe de QScriptable, vous obtiendrez les fonctions suivantes : thisObject(), argumentCount(), argument(), context() et engine(). Avec ces fonctions, vous aurez un acc�s complet � l'environnement de Qt Script depuis les slots et l'acc�s aux fonctions de propri�t�s de votre classe, quand elles sont invoqu�es � partir du script.

Par exemple, vous pouvez lancer une exception Qt Script depuis un slot ; manipuler l'objet this associ� � la fonction appel�e ; inspecter les arguments stock�s dans le QScriptContext pour conna�tre les « vrais » arguments pass�s � la fonction du script et appeler des fonctions du script depuis votre slot.

Le cas d'utilisation typique de QScriptable est d'impl�menter des prototypes objets pour personnaliser les types C++. Vous d�finissez les scripts d'interface de votre type personnalis� dans une sous-classe QScriptable en utilisant les propri�t�s et les slots. Ensuite, vous enveloppez une instance de votre classe en utilisant QScriptEngine::newQObject() et enfin, vous passez le r�sultat � QScriptEngine::setDefaultPrototype(). Voir l'exemple Prototypes par d�faut pour constater comment cela peut �tre r�alis�.

Le code suivant correspond � la r�alisation classique d'une sous-classe de QScriptable :

class MyScriptableObject: public QObject,
protected QScriptable
{
    Q_OBJECT
    ...
    public slots:
    void doSomething();
    double doSomethingElse();
}

L'unique diff�rence avec la r�alisation r�guli�re d'une sous-classe de QObject est que vous h�ritez �galement de QScriptable.

Dans l'impl�mentation de votre slot, vous pouvez ensuite utiliser les fonctions h�rit�es de QScriptable :

void MyScriptableObject::doSomething()
{
    context()->throwError("Lance une erreur depuis un slot");
}
 
double MyScriptableObject::doSomethingElse()
{
    return qscriptvalue_cast<double>(thisObject());
}

Voir aussi l'exemple Prototypes par d�faut et QScriptEngine::newFunction().

Fonctions membres

QScriptValue QScriptable::argument ( int index ) const

Retourne l'argument de la fonction dans l‹index donn�, ou un objet QScriptValue invalide si la fonction de Qt n'a pas �t� invoqu�e depuis le script.

Voir aussi argumentCount().

int QScriptable::argumentCount () const

Retourne le nombre d'arguments pass�s � la fonction dans cette invocation, ou -1 si la fonction de Qt n'a pas �t� invoqu�e depuis le script.

Voir aussi argument().

QScriptContext * QScriptable::context () const

Retourne un pointeur sur l'objet QScriptContext associ� � la fonction courante de Qt appel�e, ou 0 si la fonction de Qt n'a pas �t� invoqu�e depuis le script.

QScriptEngine * QScriptable::engine () const

Retourne un pointeur sur l'objet QScriptEngine associ� � la fonction courante de Qt appel�e, ou 0 si la fonction de Qt n'a pas �t� invoqu�e depuis le script.

QScriptValue QScriptable::thisObject () const

Retourne l'objet this associ� � la fonction courante de Qt appel�e, ou un objet QScriptValue invalide si la fonction de Qt n'a pas �t� invoqu�e depuis le script.

Remerciements

Merci � Mikael Sans pour la traduction et � Jonathan Courtois, Thibaut Cuvelier ainsi qu'� Jacques Thery pour leur relecture !

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 © 2025 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 !