Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: igor_bogomolov от Февраль 10, 2010, 12:56



Название: Parse error. Не выполняется скрипт в qt4.6.0
Отправлено: igor_bogomolov от Февраль 10, 2010, 12:56
Написал небольшой тестовый пример с использованием qscript
Код
C++ (Qt)
#include <QtCore>
#include <QtGui>
#include <QtScript>
 
class Test : public QObject
{
   Q_OBJECT
public slots:
   void test()
   {
#ifdef ERROR
qDebug() << "test1";
QString sFunction = QString("a+b");
QString sScript = QString("function(a,b){return %1;}").arg(sFunction);
#else
qDebug() << "test2";
QString sScript = QString("function(a,b) { return a+b; }");
#endif
QScriptEngine scriptEngine;
QScriptValue svFun = scriptEngine.evaluate(sScript);
if (scriptEngine.hasUncaughtException()) {
   qDebug() << QString("Script error: %1").arg(sScript);
   qDebug() << svFun.toString();
} else {
   qDebug() << QString("Script Ok!: %1").arg(sScript);
}
QScriptValueList args;
args << 1 << 2;
QScriptValue res = svFun.call(QScriptValue(), args);
qDebug() << res.toInt32();
   }
};
 
#include "main.moc"
 
int main (int argc, char ** argv)
{
QApplication app(argc, argv);
 
QPushButton * button = new QPushButton("evaluate");
Test * test = new Test();
QObject::connect(button, SIGNAL(clicked()), test, SLOT(test()));
 
button->resize(100, 30);
button->show();
 
return app.exec();
}

Этот пример прекрасно работает с версией qt4.5.3

Этот же пример скомпилированный с qt 4.6.0 (qtsdk-2009.05)не работает
Цитировать
"Script error: function(a,b) { return a+b; }"
"SyntaxError: Parse error"  


В чем может быть проблема?


Название: Re: Parse error. Не выполняется скрипт в qt4.6.0
Отправлено: BRE от Февраль 10, 2010, 14:22
Что-то поменяли в скриптовом движке.
Как обойти написал: http://www.forum.crossplatform.ru/index.php?s=&showtopic=4254&view=findpost&p=30043


Название: Re: Parse error. Не выполняется скрипт в qt4.6.0
Отправлено: igor_bogomolov от Февраль 10, 2010, 14:38
Спасибо Вам огромное :)


Название: Re: Parse error. Не выполняется скрипт в qt4.6.0
Отправлено: kerf от Март 11, 2010, 11:35
вот здесь посмотрите workaround проблемы: http://bugreports.qt.nokia.com/browse/QTBUG-5757