Spec-Zone.ru › Qt 6.0

Тип QML меню

Поп-меню, которое можно использовать как контекстное или всплывающее меню. Подробнее...

Заявление об импорте: import QtQuick.Controls 2.0
С: Qt 5.7
Наследует:

Popup

  • Список всех членов, включая наследуемые

Свойства

  • 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().

пустое popup(Элемент parent, точка pos, ПунктМеню item = null)

Открывает меню в указанной позиции pos в системе координат всплывающего меню, то есть, в координатах относительно элемента parent.

Меню можно дополнительно выровнять по определённому пункту меню item.

Этот метод QML был добавлен в QtQuick.Controls 2.3 (Qt 5.10).

См. также Popup::open().

пустое popup(Элемент parent, ПунктМеню item = null)

Открывает меню в позиции курсора мыши на платформах с поддержкой мыши, а в противном случае центрирует меню над элементом 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).

Элемент itemAt(целое index)

Возвращает элемент по индексу 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API