Есть класс, назовем его MyClassList, в котором есть QList содержащий в себе набор другого класса. Допустим
QList<MyClass> _items
. Есть необходимость вызова элементов QList в QML, при этом чтобы IDE понимал, что вызывается MyClass и подставлял доступные методы и функции. Реализация простенького
Q_PROPERTY(MyClass *last READ getLast)
MyClass *getLast() {return &_items.last()}
была успешна и IDE идеально понял, что от него хотят и вывел все последующие методы и параметры в QML как от него и требовалось (myClassList.last.someMethod например). Но вот загвоздка в том, что когда требуется вызвать элемент по индексу, например через
Q_INVOKABLE MyClass *getItem(qint32 index)
{return &_items[index]}
IDE почему-то отказывается воспринимать MyClass и предоставлять дальнейшие возможные методы. Нет, конечно, если дописать их вручную - все прекрасно работает, но задача состоит в том, чтобы передать написанную библиотеку стороннему разработчику и он интуитивно мог понять, что этот класс может делать, какие в нем методы и функции без надобности шерстить код самостоятельно. Я, к сожалению, еще не достаточно близко знаком с QT, поэтому хотелось бы узнать, как тут быть. И, вдогонку, волнующий лично меня вопрос: можно ли заставить QML понимать С++ operator[] пользовательского класса, чтобы его можно было вызвать в QML как-то вроде myClass[0].someMethod?