LINUX.ORG.RU

Работа со скриптами

 ,


0

2

Доброго времени суток всем!
Мне нужна помощь по работе со скриптами в Qt4. Собственно сам сабж:

Есть некий класс объявленный следующим образом:


class SomeMaker: public QObject
{
	Q_OBJECT
public:
	SomeMaker(QObject* parent = 0);
	~SomeMaker();
...
	Q_INVOKABLE bool make1();
	Q_INVOKABLE bool make2();	

...
};

Есть другой класс, который использует экземпляр класса SomeMaker:


class SomeMakerUser: public QObject
{
	Q_OBJECT
public:
...
	SomeMakerUser();
	~SomeMakerUser();
        SomeMaker* maker;
...
private:
...
        void executeScript(); 
...
};	

Функция executeScript():

void executeScript()
{
        QScriptEngine* engine = new QScriptEngine(this);
        QScriptValue objectValue = engine->newQObject(this);
	engine->globalObject().setProperty("SomeMakerUser",objectValue);
        QString script = button->getScript();
	engine->evaluate("SomeMakerUser.maker.make1()").toString();
	qDebug()<<engine->hasUncaughtException();
}

И собственно вопрос: почему не срабатывает вызов функции make1.



Последнее исправление: Sakura (всего исправлений: 3)

Может быть потому, что у тебя SomeMakerUser::maker не доступно из скрипта и SomeMakerUser.maker имеет значение undefined?

anonymous
()
Ответ на: комментарий от Adonai

Если вы имеете ввиду что-то такое:

class SomeMakerUser: public QObject
{
	Q_OBJECT
public:
...
	SomeMakerUser();
	~SomeMakerUser();
        SomeMaker* maker;
        Q_PROPERTY(SomeMaker* maker READ getMaker);
...
private:
...
        void executeScript(); 
...
};	

, то не помогает.

Sakura
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.