Qt 如何将新菜单项添加到QML(控制版本2,1)菜单
我刚刚将我的QT从5.6更新到5.8,我发现很多qml接口都发生了变化,比如菜单项 在5.6中,菜单的addItem方法接受字符串作为参数。 在5.8中,相同的函数需要一个对象 我如何构造这个对象 文档似乎过时了:本地文档似乎是1.6版本,网站似乎更旧,他们描述的界面显然不是最新版本 在哪里可以获得qml的最新版本文档?我需要付钱吗 以下是示例代码:Qt 如何将新菜单项添加到QML(控制版本2,1)菜单,qt,qml,Qt,Qml,我刚刚将我的QT从5.6更新到5.8,我发现很多qml接口都发生了变化,比如菜单项 在5.6中,菜单的addItem方法接受字符串作为参数。 在5.8中,相同的函数需要一个对象 我如何构造这个对象 文档似乎过时了:本地文档似乎是1.6版本,网站似乎更旧,他们描述的界面显然不是最新版本 在哪里可以获得qml的最新版本文档?我需要付钱吗 以下是示例代码: import QtQuick 2.8 import QtQuick.Controls 2.1 Rectangle { id:rootRe
import QtQuick 2.8
import QtQuick.Controls 2.1
Rectangle {
id:rootRect
Menu{
id:menuTest
y:90
}
Rectangle{
id:testArea1
width: 100
height: 100
color: "red"
MouseArea{
anchors.fill: parent
hoverEnabled: true
onEntered: {
menuTest.close();
menuTest.x = 0;
menuTest.addItem({"text":"1234245235"});
menuTest.open();
}
}
}
}
使用QtQuick.Controls 2,菜单的结构为
Menu {
MenuItem { text: 'Name0' }
MenuItem { text: 'Name1' }
MenuItem { text: 'Name2' }
}
如果您正在查找QtQuick.Controls 2-documentation的文档,请查看
在Qt5.8中,您仍然可以使用QtQuick.Controls 1,您可以找到其文档
要拥有类似于旧的QtQuick.Controls 1.x的功能,您可以定义一个函数,为您创建菜单项
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 {
}
}
}
处理信号也是可能的,但我不知道哪种方式对你最方便。您可以在addEntry函数中传递函数,并将它们连接到新创建的对象,例如是的,它是5.8,我已经更正了。但是我真的很想使用最新版本,因为QtQuick.Controls中可能存在bug和限制1@HaozheXie,这是关于QtQuick的。控件2。QtQuick 2本身没有菜单或菜单项。虽然目前我不再使用Qt,但如果您更具体地说,我可能能够帮助您了解什么不起作用,您试图实现什么,以及您希望它如何起作用。我确信我用Qt5.8+和QtQuick.Controls 2.x测试了这段代码