Тип QML MouseEvent
Предоставляет информацию о событии мыши Подробнее...
| Заявление импорта: | import QtQuick 2.7 |
Свойства
- accepted : bool
- button : перечисление
- buttons : 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
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 получать события прокрутки колёсиком мыши.
Это свойство QML было введено в 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.9/qml-qtquick-mouseevent.html