crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Помогите новичку с QtScript
LEO
  опции профиля:
сообщение 19.3.2009, 11:06
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 8.3.2009
Пользователь №: 595

Спасибо сказали: 0 раз(а)




Репутация:   0  


Народ, подскажите в чём тут ошибка. Уже кучу материала перерыл, а всё равно не пашет. Проблема в том что класс 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
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


#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

Сообщение отредактировал SABROG - 19.3.2009, 12:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 19:24