我是论坛的新手,我开始在 QtQuick 中设计一些东西。我仍在探索和学习基本的东西,我偶然发现了以下问题。当我尝试使用 Listview 从 ListModel 创建菜单(菜单栏)时,我根本没有得到任何菜单。也许我对这些原则仍有误解,你可以帮助我。这是我的基本代码:
import QtQuick 2.12
import QtQuick.Window 2.14
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.3
import QtQuick.Controls 2.14
MenuBar{
id: menuBarId
ListModel{
id: listModelMenuId
ListElement {menuname: "Test1"}
ListElement {menuname: "Test2"}
}
ListView{
id: listViewMenuId
model: listModelMenuId
delegate: Menu {
id: menu
title: model.menuname
Action { text: qsTr("Tool Bar"); checkable: true }
Action { text: qsTr("Side Bar"); checkable: true; checked: true }
Action { text: qsTr("Status Bar"); checkable: true; checked: true;}
MenuSeparator {
contentItem: Rectangle {
implicitWidth: 200
implicitHeight: 1
color: "#21be2b"
}
}
Menu {
title: qsTr("Advanced")
}
topPadding: 2
bottomPadding: 2
// delegate: mydelegateid
background: Rectangle {
implicitWidth: 200
implicitHeight: 40
color: "#ffffff"
border.color: "#21be2b"
radius: 2
}
}} }
我从 qt 站点获取了我的示例,并通过添加 ListModel 对其进行了篡改。同样有趣的是,如果我想通过使用我打包 MenuItem 并调用组件的组件来重构原始编码,它也不起作用。是不是一般菜单的工作方式与其他项目不同?如果我遗漏了一些重要的东西,请告诉我,我会添加更多信息。
此致!