当你有这样一个需求,弹出两级菜单,一级菜单菜单项可能是Menu也可能是MenuItem,菜单项数量名称都是动态的,那么你就需要了解本篇文章介绍的方法,尤其注意一点对于Repeater这种方式创建的Menu组件,必须调用addMenu添加到父菜单,这可能是一个bug,如果不用addMenu添加,它显示不出来。下面是代码:
Menu {
id: projectsMenu
implicitWidth: widthEdit
Repeater{
model: Global.g_projectsList
delegate: Loader {
property var itemModel: modelData
sourceComponent: itemModel.children ? menuDelegate : menuItemDelegate
onLoaded: {
// console.log(itemModel.children)
}
}
}
}
Component {
id: menuDelegate
Menu {
property var m