代码之家  ›  专栏  ›  技术社区  ›  pourjour

QML-使用模型项填充菜单

  •  3
  • pourjour  · 技术社区  · 7 年前

    我正在努力填补 Menu ListModel ,但这种方法不起作用(当我右键单击菜单时,不会显示任何内容):

    import QtQuick.Controls 1.3
    
    ListModel{
        id:menuItems
        ListElement{
            text:"hello1"
        }
        ListElement{
            text:"hello2"
        }
        ListElement{
            text:"hello3"
        }
    }
    

    这是我的菜单

    Menu{
        id:contextMenu
        Repeater{
        model: menuItems
        MenuItem{}
    
    }
    

    Instantiator

    2 回复  |  直到 7 年前
        1
  •  5
  •   Mitch    4 年前

    Menu {
        id: contextMenu
    
        Instantiator {
           model: menuItems
           MenuItem {
              text: model.text
           }
    
           // The trick is on those two lines
           onObjectAdded: contextMenu.insertItem(index, object)
           onObjectRemoved: contextMenu.removeItem(object)
       }
    }
    
        2
  •  0
  •   derM - not here for BOT dreams    7 年前

    您只需将每个列表元素的文本添加到菜单项中,如下所示:

    Menu{
        id:contextMenu
        visible: true
        Repeater {
            model: menuItems
            MenuItem {
                text: modelData
            }
        }
    }
    

    “我不知道你是否在其他地方打开了它。