Spec-Zone.ru › Qt 6.1

Тип QML MouseEvent

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

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

Свойства

  • 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

[с 5.11] 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: (mouse)=> {
        if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier))
            doSomething();
    }
}

[с 5.7] source : int

Это свойство содержит источник события мыши.

Источник события мыши используется для различения реальных и искусственных событий мыши. При использовании других указательных устройств, таких как сенсорные экраны и графические планшеты, если приложение не использует фактические события касания или планшета, события мыши могут быть синтезированы операционной системой или самим Qt.

Значение может быть одним из следующих:

  • Qt.MouseEventNotSynthesized - Самое распространённое значение. На платформах, где такая информация доступна, это значение указывает, что событие представляет собой реальное событие мыши из системы.
  • Qt.MouseEventSynthesizedBySystem - Указывает, что событие мыши было синтезировано из события касания или планшета платформой.
  • Qt.MouseEventSynthesizedByQt - Указывает, что событие мыши было синтезировано из несрабатывающего события касания или планшета Qt.
  • Qt.MouseEventSynthesizedByApplication - Указывает, что событие мыши было синтезировано приложением. Это позволяет отличать события мыши, созданные приложением, от событий, поступающих из системы или синтезированных Qt.

Например, для реакции только на события, которые поступают от реальной мыши:

MouseArea {
    onPressed: (mouse)=> {
        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-6.1/qml-qtquick-mouseevent.html

Spec-Zone.ru

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