Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Script. Интеграция WebKit _ Помогите новичку с QtScript

Автор: LEO 19.3.2009, 11:06

Народ, подскажите в чём тут ошибка. Уже кучу материала перерыл, а всё равно не пашет. Проблема в том что класс test не виден из скрипта. На выводе я всё время получаю "ReferenceError: test is not defined".

#include <QtGui>
#include <QtScript>

class test : public QObject
{
    Q_OBJECT
    Q_PROPERTY(bool boo READ tr)
    public:
        bool t;
        test(){t = true;};
    public slots:
        bool tr(){return t;};
};

int main ( int argc, char** argv )
{
    QApplication app ( argc, argv );
    QScriptEngine se;
    
    QScriptValue v = se.evaluate("tst = new test();    if(tst.boo){print('1')}else{print('2')}");
    
    qDebug() << v.toString();
    return app.exec();
}

Автор: SABROG 19.3.2009, 12:28

#include <QtScript>

class test : public QObject
{
    Q_OBJECT
    Q_PROPERTY(bool boo READ tr)
    public:
        bool t;
        test(QObject *p = 0) : QObject(p){t = false;};
    public slots:
        bool tr(){return t;};
};

Q_SCRIPT_DECLARE_QMETAOBJECT(test, QObject*)

int main ( int argc, char** argv )
{
    QScriptEngine se;  
    QScriptValue mytestclass = se.scriptValueFromQMetaObject<test>();
    se.globalObject().setProperty("test", mytestclass);
    QScriptValue v = se.evaluate("tst = new test(); if(tst.boo){print('1')}else{print('2')}; tst;");  
    qDebug() << v.toString();
    return 0;
}

#include "main.moc"


В faq'e такое есть:
http://www.qtsoftware.com/developer/faqs/faq.2007-06-25.9557303148

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)