def mouseMoveEvent(self, event): mimeData = QtCore.QMimeData() mimeData.setText('%d,%d' % (event.x(), event.y())) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos()) dropAction = drag.start(QtCore.Qt.MoveAction) if not dropAction == QtCore.Qt.MoveAction: pos = QtGui.QCursor.pos() qApp = QtWidgets.QApplication.instance() widget = qApp.widgetAt(pos) relpos = widget.mapFromGlobal(pos) # need to invert Y axis invY = widget.frameSize().height() - relpos.y() sel = selectFromScreenApi(relpos.x() - self.exp, invY - self.exp, relpos.x() + self.exp, invY + self.exp) self.doAction(sel)
def mouseMoveEvent(self, event): mimeData = QtCore.QMimeData() mimeData.setText('%d,%d' % (event.x(), event.y())) drag = QtGui.QDrag(self) drag.setMimeData(mimeData) drag.setHotSpot(event.pos()) dropAction = drag.start(QtCore.Qt.MoveAction) if not dropAction == QtCore.Qt.MoveAction: pos = QtGui.QCursor.pos() widget = QtWidgets.QApplication.widgetAt(pos) if self.ignore_self and (widget is self or widget.objectName() == "qt_scrollarea_viewport"): return relpos = widget.mapFromGlobal(pos) # need to invert Y axis invY = widget.frameSize().height() - relpos.y() sel = selectFromScreenApi(relpos.x() - self.exp, invY - self.exp, relpos.x() + self.exp, invY + self.exp) self.doAction(sel)