Тип QML меню
Поп-меню, которое можно использовать как контекстное или всплывающее меню. Подробнее...
| Заявление об импорте: | import QtQuick.Controls 2.0 |
| С: | Qt 5.7 |
| Наследует: |
Свойства
- cascade : bool
- contentData : список<Объект>
- contentModel : модель
- count : int
- currentIndex : int
- delegate : Компонент
- focus : bool
- overlap : вещественное
- title : строка
Методы
- Действие actionAt(int index)
- void addAction(Действие action)
- void addItem(Элемент item)
- void addMenu(Меню menu)
- void dismiss()
- void insertAction(int index, Действие action)
- void insertItem(int index, Элемент item)
- void insertMenu(int index, Меню menu)
- Элемент itemAt(int index)
- Меню menuAt(int index)
- void moveItem(int from, int to)
- void popup(вещественное x, вещественное y, ЭлементМеню item)
- void popup(Элемент parent, вещественное x, вещественное y, ЭлементМеню item)
- void popup(точка pos, ЭлементМеню item)
- void popup(Элемент parent, точка pos, ЭлементМеню item)
- void popup(ЭлементМеню item)
- void popup(Элемент parent, ЭлементМеню item)
- void removeAction(Действие action)
- void removeItem(Элемент item)
- void removeMenu(Меню menu)
- Действие takeAction(int index)
- ЭлементМеню takeItem(int index)
- Меню takeMenu(int index)
Подробное описание
Меню имеет два основных варианта использования:
- Контекстные меню; например, меню, которое отображается после щелчка правой кнопкой мыши
- Всплывающие меню; например, меню, которое отображается после нажатия на кнопку
При использовании в качестве контекстного меню рекомендуемым способом открытия меню является вызов popup(). Если положение не указано явно, меню размещается в курсоре мыши на платформах настольных компьютеров с доступным курсором мыши, а в противном случае центрируется над родительским элементом.
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" }
}
} При использовании в качестве всплывающего меню легче всего указать положение, указав требуемые координаты x и y с помощью соответствующих свойств и вызов open() для открытия меню.
Button {
id: fileButton
text: "File"
onClicked: menu.open()
Menu {
id: menu
y: fileButton.height
MenuItem {
text: "New..."
}
MenuItem {
text: "Open..."
}
MenuItem {
text: "Save"
}
}
} Начиная с QtQuick.Controls 2.3 (Qt 5.10), также можно создавать подменю и объявлять объекты Action внутри Menu:
Menu {
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" }
}
} Подменю по умолчанию являются каскадными на платформах настольных компьютеров с доступным курсором мыши. Некаскадные меню отображаются по одному за раз и центрируются над родительским меню.
Как правило, элементы меню статически объявляются как дочерние элементы меню, но Menu также предоставляет API для добавления, вставки, перемещения и удаления элементов динамически. К элементам в меню можно получить доступ, используя itemAt() или contentChildren.
Хотя ЭлементыМеню чаще всего используются с Menu, он может содержать любой тип элемента.
Поля
Так как он унаследован от Popup, Menu поддерживает поля. По умолчанию все встроенные стили указывают 0 для полей Menu, чтобы убедиться, что меню находится в пределах окна. Чтобы разрешить меню выходить за пределы окна (например, для его анимации движения в поле зрения), установите свойство полей в -1.
См. также Настройка меню, ЭлементМеню, Управление меню и Управление всплывающими окнами.
Документация по свойствам
[с QtQuick.Controls 2.3 (Qt 5.10)] cascade : bool
Это свойство указывает, будет ли меню каскадировать свои подменю.
Значение по умолчанию зависит от платформы. Меню по умолчанию является каскадным на настольных платформах с доступным курсором мыши. Некаскадные меню отображаются по одному за раз и центрируются над родительским меню.
Примечание: Изменение значения свойства не имеет эффекта во время открытия меню.
Это свойство было добавлено в QtQuick.Controls 2.3 (Qt 5.10).
См. также overlap.
[значение по умолчанию] contentData : список<Объект>
Это свойство содержит список данных содержимого.
Список содержит все объекты, объявленные в QML как дочерние элементы меню, а также элементы, которые были динамически добавлены или вставлены с помощью методов addItem() и insertItem() соответственно.
Примечание: В отличие от contentChildren, contentData включает в себя невизуальные объекты QML. Он не переупорядочивается при вставке или перемещении элементов.
См. также Item::data и contentChildren.
[только для чтения] contentModel : модель
Это свойство содержит модель, используемую для отображения элементов меню.
Модель содержимого предоставляется для целей визуализации. Ее можно назначить в качестве модели элементу содержимого, который представляет содержимое меню.
Menu {
id: menu
contentItem: ListView {
model: menu.contentModel
}
} Модель позволяет статически объявлять элементы меню как дочерние элементы меню.
[только для чтения, с QtQuick.Controls 2.3 (Qt 5.10)] count : int
Это свойство содержит количество элементов.
Это свойство было добавлено в QtQuick.Controls 2.3 (Qt 5.10).
[с QtQuick.Controls 2.3 (Qt 5.10)] currentIndex : int
Это свойство содержит индекс текущего выделенного элемента.
Элементы меню можно выделять с помощью наведения курсора мыши или навигации с помощью клавиатуры.
Это свойство было добавлено в QtQuick.Controls 2.3 (Qt 5.10).
См. также MenuItem::highlighted.
[с QtQuick.Controls 2.3 (Qt 5.10)] delegate : Компонент
Это свойство содержит компонент, который используется для создания элементов для представления действий.
Menu {
Action { text: "Cut" }
Action { text: "Copy" }
Action { text: "Paste" }
} Это свойство было добавлено в QtQuick.Controls 2.3 (Qt 5.10).
См. также Действие.
focus : bool
Это свойство указывает, хочет ли всплывающее окно фокус.
Когда всплывающее окно фактически получает фокус, activeFocus будет true. Более подробную информацию см. в разделе Фокус клавиатуры в Qt Quick.
Значение по умолчанию false.
См. также activeFocus.
[since QtQuick.Controls 2.3 (Qt 5.10)] overlap : вещественное
Это свойство задаёт количество пикселей, на которое меню горизонтально перекрывает своё родительское меню.
Свойство действует только при использовании меню в качестве каскадного подменю.
Значение по умолчанию зависит от стиля.
Примечание: Изменение значения свойства не оказывает влияния, пока меню открыто.
Это свойство было добавлено в QtQuick.Controls 2.3 (Qt 5.10).
См. также cascade.
title : строка
Это свойство содержит заголовок меню.
Заголовок меню часто отображается в тексте пункта меню, когда меню является подменю, и в тексте кнопки инструмента, когда оно находится в строке меню.
Документация по методам
пустое popup(Элемент parent, вещественное x, вещественное y, ПунктМеню item = null)
Открывает меню в указанной позиции x, y в системе координат всплывающего меню, то есть, в координатах относительно элемента parent.
Меню можно дополнительно выровнять по определённому пункту меню item.
Этот метод QML был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
См. также dismiss() и Popup::open().
Открывает меню в указанной позиции pos в системе координат всплывающего меню, то есть, в координатах относительно элемента parent.
Меню можно дополнительно выровнять по определённому пункту меню item.
Этот метод QML был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
См. также Popup::open().
Открывает меню в позиции курсора мыши на платформах с поддержкой мыши, а в противном случае центрирует меню над элементом parent.
Меню можно дополнительно выровнять по определённому пункту меню item.
Этот метод QML был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
См. также Popup::open().
[since QtQuick.Controls 2.3 (Qt 5.10)] Действие actionAt(целое index)
Возвращает действие по индексу index, или null если индекс некорректен или действия по указанному индексу нет.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
[since QtQuick.Controls 2.3 (Qt 5.10)] пустое addAction(Действие action)
Добавляет action в конец этого меню.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
пустое addItem(Элемент item)
Добавляет item в конец списка элементов.
[since QtQuick.Controls 2.3 (Qt 5.10)] пустое addMenu(Меню menu)
Добавляет menu в качестве подменю в конец этого меню.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
[since QtQuick.Controls 2.3 (Qt 5.10)] пустое dismiss()
Закрывает все меню в иерархии, к которой принадлежит это меню.
Примечание: В отличие от close(), которое закрывает только текущее меню и его подменю, dismiss() закрывает всю иерархию меню, включая родительские меню. На практике, close() подходит, например, для реализации навигации по иерархии меню, а dismiss() — для закрытия всей иерархии меню.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
См. также popup() и Popup::close().
[since QtQuick.Controls 2.3 (Qt 5.10)] пустое insertAction(целое index, Действие action)
Вставляет action по индексу index. Индекс учитывает все элементы в меню.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
пустое insertItem(целое index, Элемент item)
Вставляет item по индексу index.
[since QtQuick.Controls 2.3 (Qt 5.10)] пустое insertMenu(целое index, Меню menu)
Вставляет menu в качестве подменю по индексу index. Индекс учитывает все элементы в меню.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
Возвращает элемент по индексу index, или null если элемента по такому индексу нет.
[since QtQuick.Controls 2.3 (Qt 5.10)] Меню menuAt(целое index)
Возвращает подменю по индексу index, или null если индекс некорректен или подменю по указанному индексу нет.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
пустое moveItem(целое from, целое to)
Перемещает элемент from в другую позицию to.
[since QtQuick.Controls 2.3 (Qt 5.10)] пустое removeAction(Действие action)
Удаляет и уничтожает указанное action.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
[since QtQuick.Controls 2.3 (Qt 5.10)] пустое removeItem(Элемент item)
Удаляет и уничтожает указанный item.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
[since QtQuick.Controls 2.3 (Qt 5.10)] пустое removeMenu(Меню menu)
Удаляет и уничтожает указанное menu.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
[since QtQuick.Controls 2.3 (Qt 5.10)] Действие takeAction(целое index)
Удаляет и возвращает действие по индексу index. Индекс учитывает все элементы в меню.
Примечание: Владение действием переходит к вызывающей стороне.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
[since QtQuick.Controls 2.3 (Qt 5.10)] ПунктМеню takeItem(целое index)
Удаляет и возвращает элемент по индексу index.
Примечание: Владение элементом переходит к вызывающей стороне.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
[since QtQuick.Controls 2.3 (Qt 5.10)] Меню takeMenu(целое index)
Удаляет и возвращает меню по индексу index. Индекс учитывает все элементы в меню.
Примечание: Владение меню переходит к вызывающей стороне.
Этот метод был добавлен в QtQuick.Controls 2.3 (Qt 5.10).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qtquick-controls2-menu.html