QML:Menu详细使用方法
目录
在 QML 中,Menu
是一个用于创建下拉菜单或上下文菜单的控件。它通常由多个 MenuItem
组成,每个 MenuItem
可以包含文本、图标和快捷键,并且可以响应用户的点击事件。
一.性质
- 继承自 Popup:
Menu
继承自Popup
,这意味着它可以作为一个弹出式控件使用。 - 组成元素:
Menu
由多个Action
组成,这些Action
可以是QAction
、QMenu
或其他可点击的项。 - 信号槽机制:
Menu
支持信号槽机制,当某个Action
被触发时,可以执行相应的函数。
二.作用
- 提供用户界面元素:
Menu
提供了一种标准的方式来组织和显示应用程序的功能选项,使用户能够通过菜单访问不同的操作。 - 增强用户体验:通过使用菜单,用户可以更容易地导航和使用应用程序,因为它提供了一种直观的方式来分组和访问相关功能。
- 实现上下文菜单:
Menu
可以用作上下文菜单,即在用户右键单击某个项目时显示的菜单,这为用户提供了快速访问常用功能的便利。
三.方法
-
Action actionAt(int index):
作用:返回指定索引处的Action
对象。如果索引无效,则返回null
。 -
void addAction(Action action):
作用:将一个Action
添加到菜单的末尾。 -
void addItem(Item item):
作用:将一个Item
添加到菜单的末尾。 -
void addMenu(Menu menu):
作用:将一个子菜单添加到菜单的末尾。 -
void dismiss():
作用:关闭菜单。 -
void insertAction(int index, Action action):
作用:在指定索引处插入一个Action
。 -
void insertItem(int index, Item item):
作用:在指定索引处插入一个Item
。 -
void insertMenu(int index, Menu menu):
作用:在指定索引处插入一个子菜单。 -
Item itemAt(int index):
作用:返回指定索引处的Item
对象。如果索引无效,则返回null
。 -
Menu menuAt(int index):
作用:返回指定索引处的子菜单。如果索引无效,则返回null
。 -
void moveItem(int from, int to):
作用:将一个Item
从当前位置移动到新的位置。 -
void popup(real x, real y, MenuItem item):
作用:在指定的屏幕坐标 (x, y) 处弹出菜单,并关联到指定的MenuItem
。 -
void popup(Item parent, real x, real y, MenuItem item):
作用:在指定的父项和屏幕坐标 (x, y) 处弹出菜单,并关联到指定的MenuItem
。 -
void popup(point pos, MenuItem item):
作用:在指定的点pos
处弹出菜单,并关联到指定的MenuItem
。 -
void popup(Item parent, point pos, MenuItem item):
作用:在指定的父项和点pos
处弹出菜单,并关联到指定的MenuItem
。 -
void popup(MenuItem item):
作用:在默认位置弹出菜单,并关联到指定的MenuItem
。 -
void popup(Item parent, MenuItem item):
作用:在默认位置弹出菜单,并关联到指定的MenuItem
,同时指定父项。 -
void removeAction(Action action):
作用:从菜单中移除指定的Action
。 -
void removeItem(Item item):
作用:从菜单中移除指定的Item
。 -
void removeMenu(Menu menu):
- 作用:从菜单中移除指定的子菜单。
-
Action takeAction(int index):
- 作用:移除并返回指定索引处的
Action
。如果索引无效,则返回null
。
- 作用:移除并返回指定索引处的
-
MenuItem takeItem(int index):
- 作用:移除并返回指定索引处的
Item
。如果索引无效,则返回null
。
- 作用:移除并返回指定索引处的
-
Menu takeMenu(int index):
- 作用:移除并返回指定索引处的子菜单。如果索引无效,则返回
null
。
- 作用:移除并返回指定索引处的子菜单。如果索引无效,则返回
四.使用
1.改变标签
2.打开本地文件
3.退出程序
4.打开Dialog
五.效果
六.代码
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
visible: true
width: 640
height: 480
title: "Menu Example"
// 背景矩形,增加视觉效果
Rectangle {
anchors.fill: parent
color: "#F0F0F0"
// 标签
Label {
id:_Label
anchors.centerIn: parent
text: "我是一个标签"
font.pixelSize: 24
font.bold: true
horizontalAlignment: Text.AlignHCenter
color: "#333333"
}
// 创建一个主菜单按钮
MenuBar {
Menu {
title: "File"
Action {
text: "New"
onTriggered: {
_Label.text = "New"
}
}
Action {
text: "Open"
onTriggered: {
var folderPath = "file:///C:";
Qt.openUrlExternally(folderPath);
}
}
Action {
text: "Exit"
onTriggered: Qt.quit()
}
}
Menu {
title:"Help"
Action {
text:"About"
onTriggered:{
aboutDialog.open() // 打开关于对话框。
}
}
}
}
Dialog { // 添加一个关于对话框
id : aboutDialog
title : "About"
modal : true
implicitWidth:300
implicitHeight: 300
standardButtons : Dialog.Ok
contentItem : Column {
spacing : 10
padding : 10
Label {
text : "菜单示例应用程序"
wrapMode : Text.WordWrap
}
}
}
}
}
原文地址:https://blog.csdn.net/qq_48597462/article/details/143632021
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!