5.自定义侧边导航菜单组件(基于menubar,menu,menuitem)

目录

效果预览

qml中实现可折叠的侧边导航栏方法 使用menubar 与menubaritem ,menu,menuitem是做不到的

为此将以上组件重写,实现侧边可折叠

使用代码

复制代码
import QtQuick 2.12
import BinUI 1.0
import QtQuick.Controls 2.12
import "../"

Item {


    // 动态创建

    Component.onCompleted: {


        // 动态创建菜单栏
        for(var i = 0;i<lm.length;i++){
            var menuInfo = com_menu.createObject(menuBar,{title:lm[i].label,visible:lm[i].opened});
            if(lm[i].children){
                for(var j=0;j<lm[i].children.length ;j++){
                    var menuInfo1 = com_menu.createObject(menuBar,{title:lm[i].children[j]});
                    menuInfo.addMenu(menuInfo1)
                }
            }
            menuBar.addMenu(menuInfo)
        }

    }

    property var  lm: [
        {label:qsTr("导航1"),children:["选项1"],opened:true}, //默认展开
        {label:qsTr("导航2"),children:[]},
        {label:qsTr("导航3"),children:["选项1"]},
        {label:qsTr("导航4"),children:[]},
    ]



    Column{
        x: 10
        y: 10
        spacing: 10

        Row{
            Label{
                text: qsTr("当前被选中的菜单项:")
            }
            Label{
                id: selectedMenu_Label
            }
        }

        BinMenuBar{
            id: menuBar

            onSelectedChanged: {
                selectedMenu_Label.text = instance.text
            }
        }


    }

    Component{
        id: com_menu
        Menu{
        }
    }


}
相关推荐
Hi2024021718 小时前
为QML程序添加启动Logo:提升用户体验
windows·qt·ui·人机交互·qml·启动logo
紫荆鱼2 天前
PCL实战项目-软件界面搭建RibbonUI
qt·pcl·用户界面·qml·点云处理
江公望9 天前
装了新的QtCreator17,没有用Qt5.12自带的QtCreator4,导致QtCreator17无法找到Qt5.12帮助文档
qt·qml
奔跑吧 android10 天前
【Qt】【1. 版本特性介绍】
qt·cpp·qml
Wallace Zhang15 天前
PySide6 + QML - 多线程02 - QThread 生命周期与安全退出
vscode·pyside6·qml
江公望16 天前
如何在Qt QML中定义枚举浅谈
开发语言·qt·qml
Hi2024021717 天前
Qt+Qml客户端和Python服务端的网络通信原型
开发语言·python·qt·ui·网络通信·qml
江公望21 天前
Qt qmlplugindump浅谈
开发语言·qt·qml
江公望25 天前
Qt的QT_QPA_EGLFS_INTEGRATION环境变量浅解
linux·qt·qml
江公望1 个月前
通过QQmlExtensionPlugin进行Qt QML插件开发
c++·qt·qml