Spec-Zone.ru › Qt 6.0

Тип QML MouseEvent

Предоставляет информацию о событии мыши. Подробнее...

Заявление об импорте: import QtQuick 2.0
  • Список всех членов, включая унаследованные члены

Свойства

  • accepted : bool
  • button : перечисление
  • buttons : int
  • flags : int
  • modifiers : int
  • source : int
  • wasHeld : bool
  • x : real
  • y : real

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

Положение курсора мыши можно найти по свойствам x и y. Кнопка, вызвавшая событие, доступна через свойство button.

См. также MouseArea.

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

x : real

Эти свойства содержат координаты положения, предоставленные событием мыши.

accepted : bool

Установка accepted в значение true предотвращает распространение события мыши к элементам ниже этого элемента.

В общем случае, если элемент обрабатывает событие мыши, то он должен быть принят, чтобы элементы, расположенные ниже в порядке стекирования, не реагировали на то же событие.

button : перечисление

Это свойство содержит кнопку, вызвавшую событие. Оно может принимать одно из следующих значений:

  • Qt.LeftButton
  • Qt.RightButton
  • Qt.MiddleButton

buttons : int

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

Содержит битовое сочетание:

  • Qt.LeftButton
  • Qt.RightButton
  • Qt.MiddleButton

[since 5.11] flags : int

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

  • Qt.MouseEventCreatedDoubleClick - Указывает, что Qt создал событие двойного щелчка из этого события. Этот флаг устанавливается в событии, исходящем из нажатия кнопки, а не в результирующем событии двойного щелчка.

Это свойство было добавлено в Qt 5.11.

modifiers : int

Это свойство содержит флаги модификаторов клавиатуры, которые существовали непосредственно перед возникновением события.

Содержит битовое сочетание:

  • Qt.NoModifier - Никакая клавиша модификатора не нажата.
  • Qt.ShiftModifier - Нажата клавиша Shift.
  • Qt.ControlModifier - Нажата клавиша Ctrl.
  • Qt.AltModifier - Нажата клавиша Alt.
  • Qt.MetaModifier - Нажата клавиша Meta.
  • Qt.KeypadModifier - Нажата клавиша набора.

Например, для реакции на нажатие клавиши Shift + левой кнопки мыши:

MouseArea {
    onClicked: {
        if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier))
            doSomething();
    }
}

[since 5.7] source : int

Это свойство содержит источник события мыши.

Источник события мыши можно использовать для различения реальных и искусственных событий мыши. При использовании других устройств указания, таких как сенсорные экраны и графические планшеты, если приложение не использует фактические события касания или планшета, события мыши могут быть синтезированы операционной системой или самим Qt.

Значение может быть одним из следующих:

  • Qt.MouseEventNotSynthesized - Наиболее распространенное значение. В платформах, где такая информация доступна, это значение указывает, что событие представляет собой реальное событие мыши от системы.
  • Qt.MouseEventSynthesizedBySystem - Указывает, что событие мыши было синтезировано из события касания или планшета платформой.
  • Qt.MouseEventSynthesizedByQt - Указывает, что событие мыши было синтезировано из необработанного события касания или планшета Qt.
  • Qt.MouseEventSynthesizedByApplication - Указывает, что событие мыши было синтезировано приложением. Это позволяет различать события мыши, сгенерированные приложением, от событий, поступающих от системы или синтезированных Qt.

Например, чтобы реагировать только на события, поступающие от физической мыши:

MouseArea {
    onPressed: if (mouse.source !== Qt.MouseEventNotSynthesized) {
        mouse.accepted = false
    }

    onClicked: doSomething()
}

Если обработчик события нажатия отклоняет событие, оно будет распространено дальше, и другой элемент ниже может обработать синтезированные события от сенсорного экрана. Например, если используется Flickable (и MouseArea не является дочерним элементом Flickable), может быть полезно, чтобы MouseArea обрабатывал реальные события мыши одним способом, позволяя событиям касания проходить к Flickable ниже, чтобы сохранить возможность пролистывания на сенсорном экране. В этом случае возможность перетаскивания Flickable мышкой будет потеряна, но это не препятствует получению Flickable событий прокрутки колесом мыши.

Это свойство было добавлено в Qt 5.7.

wasHeld : bool

Это свойство имеет значение true, если кнопка мыши была нажата более длительное время, чем пороговое значение (800 мс).

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qtquick-mouseevent.html

Spec-Zone.ru

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