Допустим, мы имеем следующий класс:
class Shell : public QObject
{
Q_OBJECT
Q_PROPERTY( QVector<Effect> effects READ getEffects WRITE setEffects NOTIFY effectsChanged )
public:
explicit Shell( QObject * parent = 0 );
signals:
void burst();
void effectsChanged( const Effect & );
public slots:
void burstUp();
const QVector<Effect> &
getEffects() const;
void setEffects( const QVector<Effect> & effects );
private:
QVector<Effect> _effects;
};
Как видите, в нём есть поле _effects. Поле потенциально немаленькое, ибо QVector.
Теперь первый вопрос:
Свойство effects будет дублировать данные поля _effects? Или же за счёт методов доступа к свойству, оно является лишь псевдонимом полю _effects, и реально данные будут храниться именно в нём.
Второй вопрос:
Я хочу получить значение свойства effects за счёт соответствующего метода доступа в QtScript. Причём, крайне желательно получить его по ссылке или указателю, т.к. effects массив, потенциально немаленький. Как это лучше всего реализовать?
Ну и наконец третий, последний вопрос:
В глобальных объектах скриптового движка у меня создан массив, я хочу его оттуда вытащить и использовать в дальнейшем в нескриптовой части программы, сохранив, допустим, в виде QVector. Как это можно сделать?
Если вы знаете, что на какой-нибудь из поставленных мною вопросов дан внятный ответ в определённом месте документации, я буду сказочно признателен, если что вы укажете мне, где и что мне стоит прочитать.