Тип QML MouseEvent
Предоставляет информацию о событии мыши. Подробнее...
| Заявление об импорте: | import QtQuick 2.13 |
Свойства
- 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 предотвращает распространение события мыши к элементам ниже этого элемента.
Как правило, если элемент реагирует на событие мыши, то ему следует установить значение accepted, чтобы элементы, расположенные ниже в порядке стека, также не реагировали на это же событие.
button : перечисление
Это свойство содержит кнопку, которая вызвала событие. Оно может быть одним из:
buttons : int
Это свойство содержит нажатые кнопки мыши во время генерации события. Для событий перемещения мыши это все кнопки, которые были нажаты. Для событий нажатия и двойного щелчка мыши это включает кнопку, вызвавшую событие. Для событий отпускания мыши это исключает кнопку, вызвавшую событие.
Оно содержит побитовое сочетание:
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 мс).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qml-qtquick-mouseevent.html