QML控件--Menu

66 篇文章 3 订阅

一、控件使用

 

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

Qt学习基地:C/C++项目实战/Qt5/C语言/c++/数据库/OpenCV/MFC/QT项目-学习视频教程-腾讯课堂

二、属性成员

1、cascade : bool

菜单是否级联其子菜单。默认值是特定于平台的。

非级联菜单一次显示一个菜单,并以父菜单为中心。

注意:在菜单打开时更改此属性的值无效。

2、contentData : list<Object>

内容数据列表;

该列表包含在 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 处的菜单,该索引位于菜单中的所有项目中,菜单的所有权转移给调用者

 进群领取qt开发学习资料以及技术交流  在下方↓↓↓↓↓↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值