мудрёно потому что мне нужен кастомный стиль отображения, но использовать приходится qt 5.2.1 в котором нет MenuStyle QML Type, у Menu все еще есть свойство style, но явное задние стиля вроде
style: someMyStyleComponent {}
не отрабатывает на Mac'е, хотя вполне себе работает на Win. В итоге решил написать свой компонент.
проблема рекурсии в том, что нельзя сделать компонент вида (примерно):
@Popup.qml
ListView {
...
delegate: {
Item {
...
Text {...}
Popup {...}
...
}
}
}
т.е. запрещено recursiv instantiate, что в общем-то логично и правильно. вопрос был в том как эту штуку обойти, на данный момент я это обхожу с помощью динамического создания компонента внутри Item. примерно так:
Component.onCompleted: {
var component = Qt.createComponent("qrc:/ClickableCMItem.qml")
var clickable = component.createObject(out, {
"model": "modelData.subMenuItemsAsQVar()",
"label": modelData.text
})
где ClickableCMItem.qml хранит все, что мне необходимо от подэлемента меню, включая и компонент popup для уже своих подэлементов (если такие есть). не знаю, есть ли другой способ, но этот вполне работает