QML控件--Menu

文章目录

  • 一、控件基本信息
  • 二、控件使用
  • 三、属性成员
  • 四、成员函数

一、控件基本信息


二、控件使用

QML控件--Menu_第1张图片

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

你可能感兴趣的:(#,Qt,Quick,qt,QML)