Spec-Zone.ru › Qt 5.14

Тип QML Menu

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

Оператор импорта: import QtQuick.Controls 2.14
С тех пор: Qt 5.7
Наследует:

Popup

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

Свойства

  • cascade : bool
  • contentData : список<Объект>
  • contentModel : модель
  • count : int
  • currentIndex : int
  • delegate : Компонент
  • focus : bool
  • overlap : real
  • title : строка

Методы

  • Действие actionAt(index)
  • void addAction(action)
  • void addItem(item)
  • void addMenu(menu)
  • void dismiss()
  • void insertAction(index, Действие action)
  • void insertItem(index, Элемент item)
  • void insertMenu(index, Меню menu)
  • Элемент itemAt(index)
  • Меню menuAt(index)
  • void moveItem(from, int to)
  • void popup(x, real y, MenuItem item = null)
  • void popup(parent, real x, real y, MenuItem item = null)
  • void popup(pos, MenuItem item = null)
  • void popup(parent, точка pos, MenuItem item = null)
  • void popup(MenuItem item = null)
  • void popup(parent, MenuItem item = null)
  • void removeAction(action)
  • void removeItem(item)
  • void removeMenu(menu)
  • Действие takeAction(index)
  • ЭлементМеню takeItem(index)
  • Меню takeMenu(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.

Хотя элементы MenuItems чаще всего используются с Menu, он может содержать любые типы элементов.

См. также Настройка меню, MenuItem, Элементы управления меню и Элементы управления Popup.

Документация по свойствам

cascade : bool

Это свойство указывает, вложены ли подменю.

Значение по умолчанию зависит от платформы. Меню вложены по умолчанию на платформах настольных компьютеров, имеющих курсор мыши. Не-вложенные меню отображаются по одному за раз и центрируются над родительским меню.

Примечание: Изменение значения свойства не влияет на открытое меню.

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

См. также overlap.

[default] contentData : список<Объект>

Это свойство содержит список данных содержимого.

Список содержит все объекты, объявленные в QML как дочерние элементы меню, а также элементы, которые были динамически добавлены или вставлены с помощью методов addItem() и insertItem() соответственно.

Примечание: В отличие от contentChildren, contentData включает невидимые объекты QML. Он не переупорядочивается при вставке или перемещении элементов.

См. также Item::data и contentChildren.

[только для чтения] contentModel : модель

Это свойство содержит модель, используемую для отображения пунктов меню.

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

Menu {
    id: menu
    contentItem: ListView {
        model: menu.contentModel
    }
}

Модель позволяет статически объявлять пункты меню как дочерние элементы меню.

[только для чтения] count : int

Это свойство содержит количество элементов.

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

currentIndex : int

Это свойство содержит индекс текущего выделенного элемента.

Элементы меню можно выделять с помощью наведения курсора мыши или навигации с клавиатуры.

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

См. также MenuItem::highlighted.

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.

overlap : real

Это свойство содержит количество пикселей, на которое меню перекрывает родительское меню по горизонтали.

Свойство действует только при использовании меню в качестве вложенного подменю.

Значение по умолчанию зависит от стиля.

Примечание: Изменение значения свойства не влияет на открытое меню.

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

См. также cascade.

title : строка

Это свойство содержит заголовок для меню.

Заголовок меню часто отображается в тексте пункта меню, когда меню является подменю, и в тексте кнопки инструмента, когда она находится в строке меню.

Документация по методам

пусто popup(parent, вещественное x, вещественное y, MenuItem item = null)

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

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

Эта документация была добавлена в QtQuick.Controls 2.3 (Qt 5.10).

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

пусто popup(parent, точка pos, MenuItem item = null)

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

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

Эта документация была добавлена в QtQuick.Controls 2.3 (Qt 5.10).

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

пусто popup(parent, MenuItem item = null)

Открывает меню в указателе мыши на платформах с доступным курсором мыши, а в противном случае центрирует меню над элементом parent.

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

Эта документация была добавлена в QtQuick.Controls 2.3 (Qt 5.10).

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

Действие actionAt(index)

Возвращает действие по индексу index, или null если индекс недействителен или действия по указанному индексу нет.

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

пусто addAction(action)

Добавляет action в конец этого меню.

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

пусто addItem(item)

Добавляет item в конец списка элементов.

пусто addMenu(menu)

Добавляет menu как подменю в конец этого меню.

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

пусто dismiss()

Закрывает все меню в иерархии, к которой принадлежит это меню.

Примечание: В отличие от close(), которое закрывает только меню и его подменю, dismiss() закрывает всю иерархию меню, включая родительские меню. На практике, close() подходит, например, для реализации навигации в иерархии меню, а dismiss() - это подходящий метод для закрытия всей иерархии меню.

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

См. также popup() и Popup::close().

пусто insertAction(index, Действие action)

Вставляет action в индекс index. Индекс находится внутри всех элементов в меню.

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

пусто insertItem(index, Элемент item)

Вставляет item в индекс index.

пусто insertMenu(index, Меню menu)

Вставляет menu как подменю в индекс index. Индекс находится внутри всех элементов в меню.

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

Элемент itemAt(index)

Возвращает элемент по индексу index, или null если он не существует.

Меню menuAt(index)

Возвращает подменю по индексу index, или null если индекс недействителен или подменю по указанному индексу нет.

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

пусто moveItem(from, целое to)

Перемещает элемент from в другой индекс to.

пусто removeAction(action)

Удаляет и уничтожает указанное action.

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

пусто removeItem(item)

Удаляет и уничтожает указанный item.

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

пусто removeMenu(menu)

Удаляет и уничтожает указанное menu.

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

Действие takeAction(index)

Удаляет и возвращает действие по индексу index. Индекс находится внутри всех элементов в меню.

Примечание: Владение действием передается вызывающей стороне.

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

MenuItem takeItem(index)

Удаляет и возвращает элемент по индексу index.

Примечание: Владение элементом передается вызывающей стороне.

Этот метод был добавлен в 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-5.14/qml-qtquick-controls2-menu.html

Spec-Zone.ru

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