本文整理汇总了Python中PyQt5.QtGui.QMouseEvent方法的典型用法代码示例。如果您正苦于以下问题:Python QtGui.QMouseEvent方法的具体用法?Python QtGui.QMouseEvent怎么用?Python QtGui.QMouseEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.QtGui
的用法示例。
在下文中一共展示了QtGui.QMouseEvent方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: mousePressEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mousePressEvent(self, event: QtGui.QMouseEvent) -> None:
if event.buttons() == QtCore.Qt.RightButton:
event.ignore()
return
if event.buttons() == QtCore.Qt.MiddleButton:
# Drag event
event.accept()
self.moveStartX = event.x()
self.moveStartY = event.y()
return
if event.modifiers() == QtCore.Qt.ShiftModifier:
self.draggedMarker = self.getNearestMarker(event.x(), event.y())
elif event.modifiers() == QtCore.Qt.ControlModifier:
event.accept()
self.draggedBox = True
self.draggedBoxStart = (event.x(), event.y())
return
self.mouseMoveEvent(event)
示例2: event
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def event(self, e):
if not isinstance(e, (
QtCore.QEvent,
QtCore.QChildEvent,
QtCore.QDynamicPropertyChangeEvent,
QtGui.QPaintEvent,
QtGui.QHoverEvent,
QtGui.QMoveEvent,
QtGui.QEnterEvent,
QtGui.QResizeEvent,
QtGui.QShowEvent,
QtGui.QPlatformSurfaceEvent,
QtGui.QWindowStateChangeEvent,
QtGui.QKeyEvent,
QtGui.QWheelEvent,
QtGui.QMouseEvent,
QtGui.QFocusEvent,
QtGui.QHelpEvent,
QtGui.QHideEvent,
QtGui.QCloseEvent,
QtGui.QInputMethodQueryEvent,
QtGui.QContextMenuEvent,
)):
log().warning("unknown event: %r %r", e.type(), e)
return super().event(e)
示例3: _click_fake_event
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def _click_fake_event(self, click_target: usertypes.ClickTarget,
button: Qt.MouseButton = Qt.LeftButton) -> None:
"""Send a fake click event to the element."""
pos = self._mouse_pos()
log.webelem.debug("Sending fake click to {!r} at position {} with "
"target {}".format(self, pos, click_target))
target_modifiers = {
usertypes.ClickTarget.normal: Qt.NoModifier,
usertypes.ClickTarget.window: Qt.AltModifier | Qt.ShiftModifier,
usertypes.ClickTarget.tab: Qt.ControlModifier,
usertypes.ClickTarget.tab_bg: Qt.ControlModifier,
}
if config.val.tabs.background:
target_modifiers[usertypes.ClickTarget.tab] |= Qt.ShiftModifier
else:
target_modifiers[usertypes.ClickTarget.tab_bg] |= Qt.ShiftModifier
modifiers = typing.cast(Qt.KeyboardModifiers,
target_modifiers[click_target])
events = [
QMouseEvent(QEvent.MouseMove, pos, Qt.NoButton, Qt.NoButton,
Qt.NoModifier),
QMouseEvent(QEvent.MouseButtonPress, pos, button, button,
modifiers),
QMouseEvent(QEvent.MouseButtonRelease, pos, button, Qt.NoButton,
modifiers),
]
for evt in events:
self._tab.send_event(evt)
QTimer.singleShot(0, self._move_text_cursor)
示例4: hover
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def hover(self) -> None:
"""Simulate a mouse hover over the element."""
pos = self._mouse_pos()
event = QMouseEvent(QEvent.MouseMove, pos, Qt.NoButton, Qt.NoButton,
Qt.NoModifier)
self._tab.send_event(event)
示例5: send_fake_event
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def send_fake_event(self, val):
self.fake_mousemove_event = ("libmpv", True)
pos = self.cursor().pos()
if not self.pointer_moved:
new_point = QtCore.QPoint(pos.x() + 1, pos.y())
self.pointer_moved = True
else:
new_point = QtCore.QPoint(pos.x() - 1, pos.y())
self.pointer_moved = False
self.cursor().setPos(new_point)
if val == "mouse_release":
event = QtGui.QMouseEvent(
QtCore.QEvent.MouseButtonRelease,
new_point,
QtCore.Qt.LeftButton,
QtCore.Qt.LeftButton,
QtCore.Qt.NoModifier,
)
elif val == "mouse_move":
event = QtGui.QMouseEvent(
QtCore.QEvent.MouseMove,
new_point,
QtCore.Qt.NoButton,
QtCore.Qt.NoButton,
QtCore.Qt.NoModifier,
)
self.ui.gui_signals.mouse_move_method((self, event))
示例6: make_widget_clickable
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def make_widget_clickable(parent):
"""
Takes any QtWidgets.QWidget derived class and emits a signal emitting on mousePressEvent.
"""
# noinspection PyPep8Naming
class ClickableWidgetSubclass(parent):
"""
A widget that emits a clicked signal when the mouse is pressed.
"""
#: signal
clicked = QtCore.pyqtSignal(QtGui.QMouseEvent)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
def mousePressEvent(self, event): # noqa: N802
"""
Mouse has been pressed, process the event, then emit the signal.
:param event:
"""
super().mousePressEvent(event)
self.clicked.emit(event)
return ClickableWidgetSubclass
示例7: mousePressEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mousePressEvent(self, event: QMouseEvent) -> None:
if event.button() == Qt.LeftButton:
self.triggered.emit()
super(VCFilterMenuAction.VCFilterMenuWidget, self).mousePressEvent(event)
示例8: mousePressEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mousePressEvent(self, event: QMouseEvent) -> None:
event.accept()
if event.button() == Qt.LeftButton:
if self.parent is None:
self.originalParent.playMedia()
else:
self.parent.playMedia()
示例9: mouseDoubleClickEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mouseDoubleClickEvent(self, event: QMouseEvent) -> None:
event.accept()
if self.parent is None:
self.originalParent.toggleFullscreen()
else:
self.parent.toggleFullscreen()
示例10: mousePressEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mousePressEvent(self, event: QMouseEvent):
if event.button() == Qt.LeftButton:
self.close()
示例11: keyPressEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def keyPressEvent(self, event: QKeyEvent) -> None:
qApp.sendEvent(self.parent, event)
# def mouseMoveEvent(self, event: QMouseEvent) -> None:
# opt = QStyleOptionSlider()
# self.initStyleOption(opt)
# handle = self.style().subControlRect(QStyle.CC_Slider, opt, QStyle.SC_SliderHandle, self)
# if handle.x() <= event.pos().x() <= (handle.x() + handle.width()):
# self.setCursor(Qt.PointingHandCursor)
# self._handleHover = True
# else:
# self.unsetCursor()
# self._handleHover = False
# self.initStyle()
# super(VideoSlider, self).mouseMoveEvent(event)
示例12: mousePressEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mousePressEvent(self, event: QMouseEvent) -> None:
if event.button() == Qt.LeftButton and self.checkbox is not None:
self.checkbox.toggle()
super(StreamSelectorLabel, self).mousePressEvent(event)
示例13: mouseMoveEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mouseMoveEvent(self, event: QMouseEvent) -> None:
if self.count() > 0:
if self.indexAt(event.pos()).isValid():
self.setCursor(Qt.PointingHandCursor)
else:
self.setCursor(Qt.ArrowCursor)
super(VideoList, self).mouseMoveEvent(event)
示例14: mouseMoveEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mouseMoveEvent(self, a0: QtGui.QMouseEvent) -> None:
if a0.buttons() == QtCore.Qt.RightButton:
a0.ignore()
return
x = a0.x()
y = a0.y()
absx = x - (self.width() - self.chartWidth) / 2
absy = y - (self.height() - self.chartHeight) / 2
if absx < 0 or absx > self.chartWidth or absy < 0 or absy > self.chartHeight \
or len(self.data) == len(self.reference) == 0:
a0.ignore()
return
a0.accept()
if len(self.data) > 0:
target = self.data
else:
target = self.reference
positions = []
for d in target:
thisx = self.width() / 2 + d.re * self.chartWidth / 2
thisy = self.height() / 2 + d.im * -1 * self.chartHeight / 2
positions.append(math.sqrt((x - thisx)**2 + (y - thisy)**2))
minimum_position = positions.index(min(positions))
m = self.getActiveMarker()
if m is not None:
m.setFrequency(str(round(target[minimum_position].freq)))
m.frequencyInput.setText(str(round(target[minimum_position].freq)))
return
示例15: mouseMoveEvent
# 需要导入模块: from PyQt5 import QtGui [as 别名]
# 或者: from PyQt5.QtGui import QMouseEvent [as 别名]
def mouseMoveEvent(self, a0: QtGui.QMouseEvent):
if a0.buttons() == QtCore.Qt.RightButton:
a0.ignore()
return
if a0.buttons() == QtCore.Qt.MiddleButton:
# Drag the display
a0.accept()
if self.moveStartX != -1 and self.moveStartY != -1:
dx = self.moveStartX - a0.x()
dy = self.moveStartY - a0.y()
self.zoomTo(self.leftMargin + dx, self.topMargin + dy,
self.leftMargin + self.chartWidth + dx,
self.topMargin + self.chartHeight + dy)
self.moveStartX = a0.x()
self.moveStartY = a0.y()
return
if a0.modifiers() == QtCore.Qt.ControlModifier:
# Dragging a box
if not self.draggedBox:
self.draggedBoxStart = (a0.x(), a0.y())
self.draggedBoxCurrent = (a0.x(), a0.y())
self.update()
a0.accept()
return
x = a0.x()
f = self.frequencyAtPosition(x)
if x == -1:
a0.ignore()
return
a0.accept()
m = self.getActiveMarker()
if m is not None:
m.setFrequency(str(f))
m.frequencyInput.setText(str(f))