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{
        }
    }


}
相关推荐
谁刺我心2 天前
[QtCPP]Examples使用示例-QtMultimedia、QMediaPlayer、Audio音频引擎测试mp3播放
qt·音视频·qml
Quz2 天前
Qt Quick 粒子系统(二):系统控制与生命周期管理
qt·qml·粒子系统
Quz2 天前
Qt Quick 粒子系统(三):发射器深度解析
qt·qml·粒子系统
nnnnichijou4 天前
Qt 6.9 嵌入式 Linux 交叉编译全栈填坑指南(以树莓派5 AArch64 为例
qt·嵌入式·交叉编译·qml·树莓派5
Quz5 天前
Qt Quick 粒子系统(一):架构总览与四层模型
qt·架构·qml
Ulyanov11 天前
深入QML-Python通信 构建响应式交互界面的桥梁设计:QML+PySide6现代开发入门(五)
开发语言·python·算法·交互·qml·系统仿真
东方.既白21 天前
QML简易地铁导乘屏
qml
Ulyanov25 天前
PySide6 + QML 混合编程全景解析:从底层原理到企业级实战
python·pyside6·qml·雷达电子对抗
_君莫笑1 个月前
Qt+Qml前后端分离上位机软件技术方案
c++·qt·用户界面·qml
Ulyanov1 个月前
《现代 Python 桌面应用架构实战:PySide6 + QML 从入门到工程化》:QML 声明式语法与霓虹按钮 —— 当 Python 遇见现代美学
开发语言·python·ui·qml·系统仿真·雷达电子对抗仿真