crossplatform.ru

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

 
Тема закрытаНачать новую тему
> Wrapper QSA, Объект не видится в скрипте :(
JohnZ
  опции профиля:
сообщение 27.6.2015, 16:09
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 131
Регистрация: 19.7.2014
Пользователь №: 4190

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




Репутация:   0  


Доброго времени суток !

Уважаемые форумчане, подскажите плз, почему объект
не виден в QSA (именно QSA, тот который был в 3-ке)
Вроде по примеру врапер сделал, а интерТрепатор ругается...
Ругань в прицепе ;)

class fpForma : public QDialog  // Класс объекта
{
    Q_OBJECT

public:

    fpForma(int id, MainWindow *parent = 0, Qt::WindowFlags f = 0);
    ~fpForma();

    bool initForm(int Cmd = 0);

public slots:

    void save();
    void submit();
    void on_buttonBox_accepted();   { save(); submit(); accept (); }

//  skip
    
private:

    MainWindow *Parent;

    QModelIndex           curIndex;
    QSqlRecord         curRecord;
};


///////////////////////////////////////////////////////////////////
// WRAPPER

#ifndef WRAPPERS_H
#define WRAPPERS_H

#include <qswrapperfactory.h>
#include "fpforma.h"
#include "fptablemodel.h"

class fpFormaWrapper : public QObject
{
    Q_OBJECT
//   Q_PROPERTY(QString text READ text WRITE setText)

public:
        fpFormaWrapper(fpForma *f) : Forma(f) { }

public slots:
        QModelIndex   getIndex()  { return Forma->getCurIndex();  }
        QSqlRecord    getRecord() { return Forma->getCurRecord(); }

private:
    fpForma *Forma;
};


class Wrappers : public QSWrapperFactory
{
public:
    Wrappers()
    {
      registerWrapper("Forma");
    }

    QObject *create(const QString &name, void *ptr)
    {
         if (name == "Forma")
             return new fpFormaWrapper((fpForma *)ptr);
         return 0;
    }
};

#endif


///////////////////////////////////////////////////////////////////
// Кусок из mainwindow.cpp

    fpForma *Forma = new fpForma(frmN, this);
    Forma->setObjectName("Forma");

    interpreter->addTransientObject(Forma);

    Forma->initForm(idt); // actiontype

//  Не нужен, т.к. вызывается ранее при добавлении скрипта
//  к interpreter-у. Проверено !
//  interpreter->evaluate(locScr);

    Forma->exec();


///////////////////////////////////////////////////////////////////
// Скрипт вызывающий ошибку

function on_frm490Open()
{
   var rec = Forma.getRecord(); // <-- Ругань на картинке - эта строка
   var idx = Forma.getIndex();
}

///////////////////////////////////////////////////////////////////


Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 15.10.2019, 1:37