QML-тип ContextMenu

Предоставляет контекстное меню. Подробнее...

Строка импорта: import Sailfish.Silica 1.0
Наследуется от: Item

Свойства

Сигналы

Методы

Подробное описание

Тип ContextMenu предоставляет контекстное меню.

Контекстное меню — это меню, которое отображается под указанным элементом посредством вызова метода show(). Пункты меню задаются в дочерних элементах типа MenuItem.

Контекстные меню чаще всего используются для отображения пунктов меню для отдельных элементов списка. В примере ниже продемонстрировано использование свойства menu типа ListItem, которое отображает контекстное меню для каждого отдельно взятого элемента списка при выполнении жеста "нажать и удерживать":

 import QtQuick 2.2
 import Sailfish.Silica 1.0

 Page {
     SilicaListView {
         anchors.fill: parent

         model: ListModel {
             id: listModel
             Component.onCompleted: {
                 for (var i=0; i<10; i++) {
                     append({"name": "Item " + i})
                 }
             }
         }

         delegate: ListItem {
             width: ListView.view.width

             Label {
                 id: label
                 text: model.name
                 anchors.centerIn: parent
             }

             menu: ContextMenu {
                 MenuItem {
                     text: "Toggle bold font"
                     onClicked: label.font.bold = !label.font.bold
                 }
                 MenuItem {
                     text: "Remove"
                     onClicked: listModel.remove(model.index)
                 }
             }
         }
     }
 }

Предупреждение: высота элементов типа ContextMenu автоматически изменяется в зависимости от того, открыто контекстное меню или нет. Поэтому не следует явным образом устанавливать или изменять высоту контекстного меню. Также не следует прикреплять верхнюю и нижнюю границы контекстного меню к другим элементам, т.к. в противном случае меню не будет корректно открываться и закрываться.

См. также MenuItem, PullDownMenu и PushUpMenu.

Описание свойств

active : bool

Определяет, показывается ли меню в данный момент.

closeOnActivation : bool

При значении свойства, равном true, меню будет автоматически закрываться при нажатии на дочерний элемент типа MenuItem.

Значение по умолчанию: true.

container : Item

Содержит ссылку на родительский контейнер, который будет использоваться при вычислении значения свойства contentY элемента с прокруткой (типы Flickable).

Обычно, если меню открывается внутри элемента с прокруткой по вертикали, свойство contentY этого элемента изменяется так, чтобы содержимое сдвинулось вверх для отображения меню. Если свойство container задано, то его границы учитываются при вычислении значения свойства contentY. Это удобно, если меню должно выйти за границы видимой области элемента с прокруткой.

По умолчанию данное значение равно null.

hasContent : bool

Определяет, есть ли содержимое в контекстном меню, которое можно показать при его открытии. При значении false контекстное меню не будет открыто.

Значение по умолчанию равно true, если в пункте меню (в контейнере MenuItem) содержатся дочерние элементы. Внимание: такое предположение будет некорректным, если в меню содержатся дочерние элементы, которые невозможно отобразить (например, пустой элемент типа Repeater).

Описание сигналов

onActivated(int index)

Вызывается при нажатии на дочерний элемент типа MenuItem. Значение параметра index — это индекс пункта меню, который был нажат.

Описание методов

close()

Закрывает меню.

См. также open.

open(Item item)

Показывает меню, прикрепленное к нижней границе указанного родительского элемента item. Если элемент ContextMenu находится внутри контейнера с прокруткой, то для этого элемента будет выбрано такое положение, чтобы контекстное меню было полностью показано на экране.

См. также close.