QScriptableLa 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�eLa 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 membresQScriptValue QScriptable::argument ( int index ) constRetourne l'argument de la fonction dans lindex 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 () constRetourne 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 () constRetourne 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 () constRetourne 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 () constRetourne 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. RemerciementsMerci � 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 ! |