crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Помогите новичку с QtScript
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
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/f...6-25.9557303148
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();
}
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 25.4.2024, 4:52