- class QMouseEvent#
The
QMouseEvent
class contains parameters that describe a mouse event. More…Synopsis#
Methods#
def
__init__()
def
__repr__()
def
flags()
def
globalPos()
def
globalX()
def
globalY()
def
localPos()
def
pos()
def
screenPos()
def
source()
def
windowPos()
def
x()
def
y()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description#
Mouse events occur when a mouse button is pressed or released inside a widget, or when the mouse cursor is moved.
Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with QWidget::setMouseTracking().
Qt automatically grabs the mouse when a mouse button is pressed inside a widget; the widget will continue to receive mouse events until the last mouse button is released.
A mouse event contains a special accept flag that indicates whether the receiver wants the event. You should call ignore() if the mouse event is not handled by your widget. A mouse event is propagated up the parent widget chain until a widget accepts it with accept(), or an event filter consumes it.
Note
If a mouse event is propagated to a widget for which Qt::WA_NoMousePropagation has been set, that mouse event will not be propagated further up the parent widget chain.
The state of the keyboard modifier keys can be found by calling the
modifiers()
function, inherited fromQInputEvent
.The
position()
function gives the cursor position relative to the widget or item that receives the mouse event. If you move the widget as a result of the mouse event, use the global position returned byglobalPosition()
to avoid a shaking motion.The QWidget::setEnabled() function can be used to enable or disable mouse and keyboard events for a widget.
Reimplement the QWidget event handlers, QWidget::mousePressEvent(), QWidget::mouseReleaseEvent(), QWidget::mouseDoubleClickEvent(), and QWidget::mouseMoveEvent() to receive mouse events in your own widgets.
See also
- __init__(type, localPos, globalPos, button, buttons, modifiers[, device=QPointingDevice.primaryPointingDevice()])#
- Parameters:
type –
Type
localPos –
QPointF
globalPos –
QPointF
button –
MouseButton
buttons – Combination of
MouseButton
modifiers – Combination of
KeyboardModifier
device –
QPointingDevice
Constructs a mouse event object originating from
device
.The
type
parameter must be QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick, or QEvent::MouseMove.The
localPos
is the mouse cursor’s position relative to the receiving widget or item. The cursor’s position in screen coordinates is specified byglobalPos
. The window position is set to the same value aslocalPos
. Thebutton
that caused the event is given as a value from the Qt::MouseButton enum. If the eventtype
is MouseMove, the appropriate button for this event is Qt::NoButton.buttons
is the state of all buttons at the time of the event,modifiers
the state of all keyboard modifiers.- __init__(type, localPos, scenePos, globalPos, button, buttons, modifiers, source[, device=QPointingDevice.primaryPointingDevice()])
- Parameters:
type –
Type
localPos –
QPointF
scenePos –
QPointF
globalPos –
QPointF
button –
MouseButton
buttons – Combination of
MouseButton
modifiers – Combination of
KeyboardModifier
source –
MouseEventSource
device –
QPointingDevice
- __init__(type, localPos, scenePos, globalPos, button, buttons, modifiers[, device=QPointingDevice.primaryPointingDevice()])
- Parameters:
type –
Type
localPos –
QPointF
scenePos –
QPointF
globalPos –
QPointF
button –
MouseButton
buttons – Combination of
MouseButton
modifiers – Combination of
KeyboardModifier
device –
QPointingDevice
Constructs a mouse event object.
The
type
parameter must be QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick, or QEvent::MouseMove.The points
localPos
,scenePos
andglobalPos
specify the mouse cursor’s position relative to the receiving widget or item, window, and screen or desktop, respectively.The
button
that caused the event is given as a value from the Qt::MouseButton enum. If the eventtype
is MouseMove, the appropriate button for this event is Qt::NoButton.buttons
is the state of all buttons at the time of the event,modifiers
is the state of all keyboard modifiers.- __init__(arg__1)
- Parameters:
arg__1 –
QMouseEvent
- __init__(type, localPos, button, buttons, modifiers[, device=QPointingDevice.primaryPointingDevice()])
- Parameters:
type –
Type
localPos –
QPointF
button –
MouseButton
buttons – Combination of
MouseButton
modifiers – Combination of
KeyboardModifier
device –
QPointingDevice
Note
This function is deprecated.
Use another constructor instead (global position is required).
Constructs a mouse event object originating from
device
.The
type
parameter must be one of QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick, or QEvent::MouseMove.The
localPos
is the mouse cursor’s position relative to the receiving widget or item. The window position is set to the same value aslocalPos
. Thebutton
that caused the event is given as a value from the Qt::MouseButton enum. If the eventtype
is MouseMove, the appropriate button for this event is Qt::NoButton. The mouse and keyboard states at the time of the event are specified bybuttons
andmodifiers
.The
globalPosition()
is initialized topos()
, which may not be appropriate. Use the other constructor to specify the global position explicitly.- __repr__()#
- Return type:
object
- flags()#
- Return type:
Combination of
MouseEventFlag
Returns the mouse event flags.
The mouse event flags provide additional information about a mouse event.
See also
flags()
Use
globalPosition()
.toPoint() instead.Returns the global position of the mouse cursor at the time of the event. This is important on asynchronous window systems like X11. Whenever you move your widgets around in response to mouse events, globalPos() may differ a lot from the current pointer position
pos()
, and from QWidget::mapToGlobal(pos()
).- globalX()#
- Return type:
int
Note
This function is deprecated.
Use
globalPosition()
.x()
instead.Returns the global x position of the mouse cursor at the time of the event.
See also
- globalY()#
- Return type:
int
Note
This function is deprecated.
Use
globalPosition()
.y()
instead.Returns the global y position of the mouse cursor at the time of the event.
See also
Use
position()
instead.Returns the position of the mouse cursor as a QPointF, relative to the widget or item that received the event.
If you move the widget as a result of the mouse event, use the screen position returned by
screenPos()
to avoid a shaking motion.See also
Use
position()
instead.Returns the position of the mouse cursor, relative to the widget that received the event.
If you move the widget as a result of the mouse event, use the global position returned by
globalPos()
to avoid a shaking motion.See also
Use
globalPosition()
instead.Returns the position of the mouse cursor as a QPointF, relative to the screen that received the event.
See also
- source()#
- Return type:
Use
pointingDevice()
instead.Returns information about the mouse event source.
The mouse event source can be used to distinguish between genuine and artificial mouse events. The latter are events that are synthesized from touch events by the operating system or Qt itself. This enum tells you from where it was synthesized; but often it’s more useful to know from which device it was synthesized, so try to use
pointingDevice()
instead.Note
Many platforms provide no such information. On such platforms Qt::MouseEventNotSynthesized is returned always.
Note
In Qt 5-based code, source() was often used to attempt to distinguish mouse events from an actual mouse vs. those that were synthesized because some legacy QQuickItem or QWidget subclass did not react to a
QTouchEvent
. However, you could not tell whether it was synthesized from aQTouchEvent
or aQTabletEvent
, and other information was lost.pointingDevice()
tells you the specific device that it came from, so you might checkpointingDevice()->type()
orpointingDevice()->capabilities()
to decide how to react to this event. But it’s even better to react to the original event rather than handling only mouse events.See also
source()
Use
scenePosition()
instead.Returns the position of the mouse cursor as a QPointF, relative to the window that received the event.
If you move the widget as a result of the mouse event, use the global position returned by
globalPos()
to avoid a shaking motion.See also
- x()#
- Return type:
int
Note
This function is deprecated.
Use
position()
.x() instead.Returns the x position of the mouse cursor, relative to the widget that received the event.
- y()#
- Return type:
int
Note
This function is deprecated.
Use
position()
.y() instead.Returns the y position of the mouse cursor, relative to the widget that received the event.