Russian Qt Forum

Qt => Qt Quick => Тема начата: warlock от Май 16, 2011, 21:37



Название: Доступ к свойствам пользовательского типа из QML
Отправлено: warlock от Май 16, 2011, 21:37
Делаю форму с обработкой ошибок.
Написал свою модель в которой же проверяются данные, например так:
Код:
var result = form.check(title,author,text)
if(result) console.log("YES");
В классе модели есть ассоциативный массив ошибок.
Вот собственно как обеспечить доступ к этому массиву (контейнеру) доступ из QML?
для методов есть замечательный макрос Q_INVOKABLE


Название: Re: Доступ к свойствам пользовательского типа из QML
Отправлено: twp от Май 17, 2011, 13:37
любой кастом тип требует регистрации. В данном случае, поскольку это не отображаемый тип, нужно унаследоваться от QObject и зарегистрировать, в общем все так же как и с моделью. Другое дело что может его и не нужно регистрировать а оставить как есть, а доступ сделать через метод модели, который бы возвращал значение по ключу.


Название: Re: Доступ к свойствам пользовательского типа из QML
Отправлено: warlock от Май 22, 2011, 22:50
Дело в том, что этот массив находиться в моей модели, которая уже зарегистрирована в QML. Но доступ даже к паблик свойствам запрещен или они просто невидимые.
Даже если я расшарю это свойство своего класса модели как контекст, даст ли это мне доступ ко всем методам этого класса (в данном случае QMap)?

А вот поступлю я скорее всего так, как Вы посоветовали - напишу метод для доступа. Не буду нарушать концепции ООП.
Получиться - отпишусь)


Название: Re: Доступ к свойствам пользовательского типа из QML
Отправлено: warlock от Май 23, 2011, 20:26
Все получилось. Действительно красиво выглядит  :)