convert to QPointF mouse event position

DockDrop.py : use QPointF mouse coords
This commit is contained in:
KIU Shueng Chuan 2021-01-17 12:30:12 +08:00
parent 607db15949
commit 13d652c794
5 changed files with 20 additions and 15 deletions

View File

@ -5,6 +5,7 @@ from .DockDrop import *
from ..widgets.VerticalLabel import VerticalLabel
from ..python2_3 import asUnicode
class Dock(QtGui.QWidget, DockDrop):
sigStretchChanged = QtCore.Signal()
@ -328,13 +329,13 @@ class DockLabel(VerticalLabel):
self.updateStyle()
def mousePressEvent(self, ev):
self.pressPos = ev.pos()
self.pressPos = ev.localPos()
self.mouseMoved = False
ev.accept()
def mouseMoveEvent(self, ev):
if not self.mouseMoved:
self.mouseMoved = (ev.pos() - self.pressPos).manhattanLength() > QtGui.QApplication.startDragDistance()
self.mouseMoved = (ev.localPos() - self.pressPos).manhattanLength() > QtGui.QApplication.startDragDistance()
if self.mouseMoved and ev.buttons() == QtCore.Qt.LeftButton:
self.dock.startDrag()

View File

@ -30,9 +30,9 @@ class DockDrop(object):
def dragMoveEvent(self, ev):
#print "drag move"
ld = ev.pos().x()
ld = ev.posF().x()
rd = self.width() - ld
td = ev.pos().y()
td = ev.posF().y()
bd = self.height() - td
mn = min(ld, rd, td, bd)

View File

@ -401,11 +401,12 @@ class GLViewWidget(QtWidgets.QOpenGLWidget):
return xDist / self.width()
def mousePressEvent(self, ev):
self.mousePos = ev.pos()
self.mousePos = ev.localPos()
def mouseMoveEvent(self, ev):
diff = ev.pos() - self.mousePos
self.mousePos = ev.pos()
lpos = ev.localPos()
diff = lpos - self.mousePos
self.mousePos = lpos
if ev.buttons() == QtCore.Qt.LeftButton:
if (ev.modifiers() & QtCore.Qt.ControlModifier):

View File

@ -25,6 +25,7 @@ from .. import getConfigOption
__all__ = ['GraphicsView']
class GraphicsView(QtGui.QGraphicsView):
"""Re-implementation of QGraphicsView that removes scrollbars and allows unambiguous control of the
viewed coordinate range. Also automatically creates a GraphicsScene and a central QGraphicsWidget
@ -356,8 +357,9 @@ class GraphicsView(QtGui.QGraphicsView):
if not self.mouseEnabled:
return
self.lastMousePos = Point(ev.pos())
self.mousePressPos = ev.pos()
lpos = ev.localPos()
self.lastMousePos = lpos
self.mousePressPos = lpos
self.clickAccepted = ev.isAccepted()
if not self.clickAccepted:
self.scene().clearSelection()
@ -372,15 +374,16 @@ class GraphicsView(QtGui.QGraphicsView):
return ## Everything below disabled for now..
def mouseMoveEvent(self, ev):
lpos = ev.localPos()
if self.lastMousePos is None:
self.lastMousePos = Point(ev.pos())
delta = Point(ev.pos() - self.lastMousePos.toQPoint())
self.lastMousePos = Point(ev.pos())
self.lastMousePos = lpos
delta = Point(lpos - self.lastMousePos)
self.lastMousePos = lpos
super().mouseMoveEvent(ev)
if not self.mouseEnabled:
return
self.sigSceneMouseMoved.emit(self.mapToScene(ev.pos()))
self.sigSceneMouseMoved.emit(self.mapToScene(lpos))
if self.clickAccepted: ## Ignore event if an item in the scene has already claimed it.
return

View File

@ -18,11 +18,11 @@ class JoystickButton(QtGui.QPushButton):
def mousePressEvent(self, ev):
self.setChecked(True)
self.pressPos = ev.pos()
self.pressPos = ev.localPos()
ev.accept()
def mouseMoveEvent(self, ev):
dif = ev.pos()-self.pressPos
dif = ev.localPos()-self.pressPos
self.setState(dif.x(), -dif.y())
def mouseReleaseEvent(self, ev):