Я написал библиотеку виджетов и сейчас улучшаю ее для возможности визуальной настройки в дизайнере.
В данный момент стоит задача предоставить возможность программисту задавать свойства через редактор свойств.
С простыми типами свойств проблем нет:
int _currentIndex;
Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex USER true)
const int currentIndex() const;
const bool setCurrentIndex(const int _currentIndex);
В приведенном примере все прекрасно, свойство currentIndex появляется в редакторе свойств и я без проблем могу его задавать.
А вот с QList у меня проблемы. К примеру такой код:
QList<int> _glyphOrder;
Q_PROPERTY(QList<int> glyphOrder READ glyphOrder WRITE setGlyphOrder USER true STORED true DESIGNABLE true)
const QList<int> glyphOrder() const;
const bool setGlyphOrder(const QList<int>& _glyphOrder);
Ни в какую не срабатывает, свойство glyphOrder не появляется.
Прошерстив просторы интернета перепробовал кучу вариантов, но результата так и не добился.
Пробовал и QList<QVariant> и QValueList. Не выходит.
Но то, что в дизайнере можно в качестве свойств представлять QList<int> уверен на 100%, ибо сам видел у какого-то виджета. Пробовал искать реализацию в исходниках Qt, но так и не нашел, ибо не помню что за виджет.
Подскажите как быть в этой ситуации. Как заставить designer отображать в редакторе свойств QList и QMap.
Неужели придется писать свое расширение для designer чтобы реализовать этот функционал?
Спасибо.