Динамическое заполнение меню QML

Я работаю над средой для запуска приложений HP webOS. Мне нужно прочитать Mojo.Menu и заполнить меню QML данными, взятыми из кода javascript.

Например из

            Mojo.Menu.prefsItem,
{
{ label: $L("High Scores")
},

Я бы создал объект QML

MenuItem {
text: "High scores"onClicked: //some stuff
}

Список (QStringList или QList) будет предоставлен функцией Q_INVOKABLE.

Можно ли динамически создавать такие элементы MenuItem и передавать их в MenuLayout?

1

Решение

Ты можешь использовать

Qt.createQmlObject()

для динамического создания объектов, а затем вы можете изменить их свойства, чтобы те из вашего списка. смотреть на Эта статья для более подробной информации о создании динамических объектов.

Чтобы добавить эти динамически создаваемые элементы в макет, вы сначала создаете макет:

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";
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]