Spec-Zone.ru › Qt 5.15

Тип QML MouseEvent

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

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

Свойства

  • 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

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.15/qml-qtquick-mouseevent.html

Spec-Zone.ru

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