Spec-Zone.ru › Qt 5.12

Тип QML MouseEvent

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

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

Свойства

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

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

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

См. также MouseArea.

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

accepted : bool

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

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

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

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

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

buttons : int

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

В нем содержится битовое сочетание:

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

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();
    }
}

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 мс).

x : real

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

y : real

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

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

Spec-Zone.ru

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