В ответ @timday в указанном вами вопросе указывает ответ, но не показывает пример:
... Динамическое создание меню - этонемного сложнее;см. Qt.createQmlObject или Qt.createComponent docs . (Может быть проще просто объявить все, что вам нужно в вашем коде, но с их видимым свойством, привязанным к любой подходящей логике). ...
(выделение мое)
Поэтому мой ответ - просто показать вам, как это сделать, хотя я думаю, что вы хотите добавить MenuItem вМеню динамически, вместо меню в строке меню:
import QtQuick 2.13
import QtQuick.Controls 2.13
ApplicationWindow {
id: root
width: 640
height: 480
visible: true
menuBar: MenuBar {
Menu {
id: plugins_menu
title: qsTr("&Plugins")
}
}
function onTriggered(item){
console.log(item.text)
}
Component.onCompleted:{
var plugin_names = ["plugin1", "plugin2", "plugin3"]
for(var i in plugin_names){
var item = Qt.createQmlObject('import QtQuick 2.13; import QtQuick.Controls 2.13; MenuItem {}',
plugins_menu)
item.text = plugin_names[i]
plugins_menu.addItem(item)
var f = function(it){
it.triggered.connect(function (){ root.onTriggered(it)
})}
f(item)
}
}
}