说明
菜单栏通常由下拉菜单组成,菜单一般存在于窗口的顶部。
常用
1.菜单分离器
就是在菜单中两个菜单名之间的横线,用于分隔。
MenuSeparator { }
2.顶部菜单
在MenuBar中增加一个菜单选项。
MenuBar {
id: menuBar
anchors.fill: parent
Menu {
id: fileMenu
title: qsTr("文件")
}
增加菜单
直接在Menu中再加一个Menu,这个子Menu又会拥有一个可以下拉的选项,套娃一样。Menu的触发则需要加入MenuItem方法之后才能使用onTriggered。
MenuBar {
id: menuBar
anchors.fill: parent
Menu {
id: fileMenu
title: qsTr("文件")
Menu {
id: fileMenu
title: qsTr("文件")
}
}
增加一个选项
1.在Menu中加一个Action方法。他自己就拥有触发选项,点击事件可以直接使用onTriggered进行触发,比如此处是打开网站;
2.也可以使用MenuItem,效果是一样的。
//1
Action{
id:m_LoadBtn
text: qsTr("加载")
onTriggered: Qt.openUrlExternally("https://www.bilibili.com/")
}
//2
MenuItem{
text: qsTr("打开网站")
onTriggered: Qt.openUrlExternally("https://www.bilibili.com/")
}
添加快捷键
和onTriggered的添加方式及要求一样,加入shortcut+自己定义的按键设置,即可定义快捷键功能。
Action{
id:m_OpenUrlBtn
text: qsTr("打开网站")
onTriggered: Qt.openUrlExternally("https://www.bilibili.com/")
shortcut: "Ctrl+O"
}
3.右键菜单
需要注意的是此菜单包含了鼠标左键和右键,如果只需要右键的,就去掉Qt.LeftButton即可。
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: {
if (mouse.button === Qt.RightButton)
contextMenu.popup()
}
onPressAndHold: {
if (mouse.source === Qt.MouseEventNotSynthesized)
contextMenu.popup()
}
Menu {
id: contextMenu
MenuItem { text: "Cut" }
MenuItem { text: "Copy" }
MenuItem { text: "Paste" }
}
}
a.左填充
右键菜单中的每一行选项默认左对齐,左填充可以进行位置的更改。
leftPadding: 20//左填充
b.修改菜单的背景颜色
background: Rectangle{
color: "light gray"
}