Тип QML MouseEvent
Предоставляет информацию о событии мыши. Подробнее...
| Заявление об импорте: | import QtQuick 2.14 |
Свойства
- 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 : перечисление
Это свойство содержит кнопку, вызвавшую событие. Оно может быть одним из:
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.14/qml-qtquick-mouseevent.html