我正在开发运行HP webOS应用的环境。我需要阅读Mojo.Menu并使用从javascript代码中获取的数据填充QML菜单。
例如来自
Mojo.Menu.prefsItem,
{
{ label: $L("High Scores")
},
我创建了QML对象
MenuItem {
text: "High scores"
onClicked: //some stuff
}
列表(QStringList或QList)将由Q_INVOKABLE函数提供。
这可以动态创建这样的MenuItem并将它们推送到MenuLayout吗?
答案 0 :(得分:3)
您可以使用
Qt.createQmlObject()
动态创建对象,然后您可以将其属性更改为列表中的属性。有关动态对象创建的更多详细信息,请查看this article。
要将这些动态创建项添加到布局,请先创建布局:
MenuLayout {
id: customLayout
}
然后添加动态创建的MenuItem
var menuComponent = Qt.createComponent("MenuItem.qml");
if(menuComponent.status == Component.Ready) {
var createdMenu = menuComponent.createObject(customLayout);
createdMenu.text = "Text from your QList";
}