我刚刚将我的QT从5.6更新到5.8,我发现很多qml界面已经改变,比如菜单项。
在5.6中,菜单的addItem方法接受一个字符串作为参数。 在5.8中,相同的功能需要一个对象。
我该如何构建该对象?
该文档似乎已过时:本地文档似乎为1.6,网站似乎较旧,他们描述的界面显然不是最新版本。
我在哪里可以获得qml的最新版文档?我需要付钱吗?
这是示例代码:
$(".notification:eq(1)")
答案 0 :(得分:1)
QtQuick.Controls 2
Menu
的结构为
Menu {
MenuItem { text: 'Name0' }
MenuItem { text: 'Name1' }
MenuItem { text: 'Name2' }
}
如果您要查找QtQuick.Controls 2
- 文档的文档,请查看here
在Qt5.8
中,您仍然可以使用QtQuick.Controls 1
找到文档here
要拥有与旧QtQuick.Controls 1.x
类似的内容,您可以自己定义一个函数,为您创建MenuItem
。
MouseArea {
anchors.fill: parent
onClicked: {
menu.addEntry('test')
menu.open()
}
}
Menu {
id: menu
function addEntry(title) {
menu.addItem(menuItem.createObject(menu, { text: title }))
}
Component {
id: menuItem
MenuItem {
}
}
}
Handeling信号也是可能的,但我不知道哪种方式最方便。您可以在addEntry函数中传递函数,并将它们连接到新创建的对象,例如