QScriptEngine
Résolu
DrCrow
Messages postés
416
Statut
Membre
-
DrCrow Messages postés 416 Statut Membre -
DrCrow Messages postés 416 Statut Membre -
Bonsoir a vous tous ...
je me suis lancé a utiliser le QScriptEngine, a faire des évaluation de donné , tout marche a merveille, mais en essayant cela, ( de mettre une fonction mathématique n'importe ....
suntaxe eRror, comme quoi la fonction ne peux pas etre lus par le moteur ....
msg d'erreur: ReferenceError: Can't find variable qLn
que dois je faire pour qu'il puisse lire les fonction math ....
Merci d'aVance :)
Doc !!
je me suis lancé a utiliser le QScriptEngine, a faire des évaluation de donné , tout marche a merveille, mais en essayant cela, ( de mettre une fonction mathématique n'importe ....
QScriptEngine engine;
engine.evaluate("qLn(2)");
suntaxe eRror, comme quoi la fonction ne peux pas etre lus par le moteur ....
msg d'erreur: ReferenceError: Can't find variable qLn
que dois je faire pour qu'il puisse lire les fonction math ....
Merci d'aVance :)
Doc !!
1 réponse
-
Comme indiqué par le message d'erreur, 'qLn' n'est pas connu; je ne sais pas d'où tu sors 'qLn'...
Essayes avec "log(2)" pour le népérien et "log(2)/LN10" pour le décimal.
Bonne continuation.-
"" je ne sais pas d'où tu sors 'qLn'... ""
c'est la fonction de Logarithme Népérien propre a Qt ... ^^
inclus dans <QtCore/qmath.h>.... histoire de syntaxe :)
Sinon, en y testant aussi log(2) , sa ne marche toujours pas
msg d'erreur: ReferenceError: Can't find variable log
On m'avais conseillé de faire en sorte que le moteur reconnaisse ma fonction log() en créant une fonction avec ,QScriptEngine::newFunction( ... )
mais , je ne sais pas comment en faire ( j'ai jamais utilisé cette class ) :( , meme avec la doc , sa reste un peu flous ... :(
exemple fourni dans la doc ( qt )static QScriptValue getSetFoo(QScriptContext *context, QScriptEngine *engine) { QScriptValue callee = context->callee(); if (context->argumentCount() == 1) // writing? callee.setProperty("value", context->argument(0)); return callee.property("value"); } .... QScriptValue object = engine.newObject(); object.setProperty("foo", engine.newFunction(getSetFoo), QScriptValue::PropertyGetter | QScriptValue::PropertySetter);
quelqu'un peu m'claircir ce point ... !!
mErcii
DOc !! -
Cela doit fonctionner à condition de ne pas oublier de préciser 'Math.log(2)'.
Je ne connaissais pas 'qLn', peut-être est-ce récent ? Qt est si vaste ...
De toutes façons, QScript n'est pas proche de cette syntaxe, mais plutôt de JavaScript.
Les fonctions mathématiques compréhensibles par QtScript sont par exemple:
abs, cos, sin, tan, acos, asin,ceil, exp, floor, log, pow, sqrt, min, max et d'autres encore.
Bonne continuation. -
-