import QtQuick 2.10
import QtQuick.Window 2.10
import QtQuick.Controls 2.3
ApplicationWindow{
visible: true;
width: 1280;
height: 720;
Button {
id: fileButton
text: "File"
onClicked: menu.open()
Menu {
id: menu
y: fileButton.height
Action { text: "Cut" }
Action { text: "Copy" }
Action { text: "Paste" }
MenuSeparator { }
Menu {
title: "Find/Replace"
Action { text: "Find Next" }
Action { text: "Find Previous" }
Action { text: "Replace" }
}
}
}
}
1、cascade : bool
菜单是否级联其子菜单。默认值是特定于平台的。
非级联菜单一次显示一个菜单,并以父菜单为中心。
注意:在菜单打开时更改此属性的值无效。
2、contentData : list
内容数据列表;
该列表包含在 QML 中声明为菜单子项的所有对象,以及分别使用 addItem() 和 insertItem() 方法动态添加或插入的项目;
注意:与 contentChildren 不同,contentData 确实包含非可视 QML 对象。插入或移动项目时不会重新排序。
3、[read-only] contentModel : model
用于显示菜单项的模型;
提供内容模型用于可视化目的;它可以作为模型分配给呈现菜单内容的内容项;
Menu {
id: menu
contentItem: ListView {
model: menu.contentModel
}
}
4、[read-only] count : int
项目的数量
5、currentIndex : int
当前突出显示的项目的索引;菜单项可以通过鼠标悬停或键盘导航突出显示;
6、delegate : Component
用于创建项目以呈现动作的组件
7、focus : bool
弹出窗口是否需要焦点。默认为 false。
当弹出窗口实际获得焦点时,activeFocus 将为true。
8、overlap : real
菜单与其父菜单水平重叠的像素数量。默认值是特定于样式的;
该属性仅在菜单用作级联子菜单时才有效;
在菜单打开时更改属性的值无效
9、title : string
菜单的标题;
当菜单是子菜单时,菜单的标题通常显示在菜单项的文本中,而当它在菜单栏中时,则显示在工具按钮的文本中;
1、菜单弹出函数
void popup(Item parent, real x, real y, MenuItem item = null)
void popup(real x, real y, MenuItem item = null)
在弹出窗口坐标系中的指定位置 x, y 处打开菜单,即相对于其父项的坐标。
菜单可以选择与特定菜单项对齐。
void popup(Item parent, point pos, MenuItem item = null)
void popup(point pos, MenuItem item = null)
在弹出窗口坐标系中的指定位置 pos 处打开菜单,即相对于其父项的坐标。
菜单可以选择与特定菜单项对齐。
void popup(Item parent, MenuItem item = null)
void popup(MenuItem item = null)
在鼠标光标处打开菜单,否则将菜单置于其父项的中心。
菜单可以选择与特定菜单项对齐。
2、Action actionAt(int index)
返回索引处的动作,如果索引无效或指定索引处没有操作,则返回 null;
3、void addAction(Action action)
将动作添加到此菜单的末尾;
4、void addItem(Item item)
将项目添加到项目列表的末尾
5、void addMenu(Menu menu)
将菜单作为子菜单添加到此菜单的末尾
6、void dismiss()
关闭此菜单所属的层次结构中的所有菜单;
注意:与仅关闭菜单及其子菜单的 close() 不同,dismiss() 关闭菜单的整个层次结构,包括父菜单;
7、void insertAction(int index, Action action)
在索引处插入动作。该索引位于菜单中的所有项目中;
8、void insertItem(int index, Item item)
在索引处插入项目;
9、void insertMenu(int index, Menu menu)
在索引处插入菜单作为子菜单。该索引位于菜单中的所有项目中;
10、Item itemAt(int index)
返回索引处的项目,如果不存在则返回 null;
11、Menu menuAt(int index)
返回索引处的子菜单,如果索引无效或指定索引处没有子菜单,则返回 null;
12、void moveItem(int from, int to)
将索引 from 处的项目移动到索引 to;
13、void removeAction(Action action)
删除并销毁指定的动作;
14、void removeItem(Item item)
移除并销毁指定的项目;
15、void removeMenu(Menu menu)
删除和销毁指定的菜单;
16、Action takeAction(int index)
删除并返回索引处的动作,该索引位于菜单中的所有项目中,动作的所有权转移给调用者;
17、MenuItem takeItem(int index)
删除并返回索引处的项目,项目的所有权转移给调用者;
18、Menu takeMenu(int index)
删除并返回 index 处的菜单,该索引位于菜单中的所有项目中,菜单的所有权转移给调用者