Как работает автозаполнение для пользовательского объекта C ++, созданного в QML Javascript? - PullRequest
0 голосов
/ 15 сентября 2018

Я пробовал много способов получить предложения по дополнению кода.

Если мои коды QML:

var a = CustomClass;
a.value = 45; // code completer work but qml error TypeError: Type Error

Я использую эту функцию:

var a = CustomClass.newCustomClass();
a.value = 45; // this success with no error but "value" member I typed manually.

Это вызывает большую проблему, если CustomClass имеет много членов или атрибутов. Я должен смотреть на определение и объявление класса для каждого члена объекта класса, если я не могу вспомнить, и поэтому моя работа замедляется.

C ++:

class CustomClass : public QObject
{
    Q_OBJECT
    Q_PROPERTY( QString value READ value WRITE setValue )
    public:
    CustomClass(){}

    Q_INVOKABLE static QVariant* newCustomClass(){ return QVariant::fromValue(new CustomClass());}


    QString value() const { return mValue; }
    void setValue(const QString& value){ this->mValue = value;}


private:

QString mValue;

}

QML-код:

import com.customType 1.0

Component.onCompleted: {
var size = Qt.size( 1 , 2 );

size.width = 5; //-> code completer work if typed (ctrl+space). ctrl+space offer me two variable width ve height 

var element = CustomClass.newCustomClass();

element.value = 77; // code completer does not work.

Основная функция:

qmlRegisterType<CustomClass>("customclass", 1, 0, "CustomClass");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...