Доброе время суток. У меня такой вопрос: как из engine.globalObject() вытащить все элементы класса test, доступного скриптам?
Проблема в том, что созданный объект tst является объектом класса Object, а не test. Подскажите в чём ошибка.
Код:
namespace MAIN
{
QScriptEngine *se = new QScriptEngine();
}
class test : public QObject
{
Q_OBJECT
public:
test ( QObject *p = 0 ) : QObject ( p )
{
qDebug() << "12345";
};
};
Q_SCRIPT_DECLARE_QMETAOBJECT ( test, QObject* )
int main ( int argc, char** argv )
{
using namespace MAIN;
QScriptValue mytestclass = se->scriptValueFromQMetaObject<test>();
se->globalObject().setProperty ( "test", mytestclass );
se->evaluate ( "tst = new test(); tst = [[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]]]; b=new Array();" );
QScriptValue v = se->globalObject();
QScriptValueIterator it ( v );
while ( it.hasNext() )
{
it.next();
if ( it.flags() & QScriptValue::SkipInEnumeration )
continue;
qDebug() << it.name() << " " << it.value().toString() <<it.value().isQMetaObject();
}
return 0;
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)