def calcTolerance(self, pos): """calculate snap tolerance""" pt1 = PQtC.QPoint(pos.x(), pos.y()) pt2 = PQtC.QPoint(pos.x() + 20, pos.y()) dummy, layerPt1 = self.transformCoordinates(pt1) dummy, layerPt2 = self.transformCoordinates(pt2) tolerance = layerPt2.x() - layerPt1.x() return tolerance
def calcTolerance(self, pos): """calculate the tolerance of snapping""" pt1 = PQtC.QPoint(pos.x(), pos.y()) pt2 = PQtC.QPoint(pos.x() + 10, pos.y()) layerPt1 = self.toMapCoordinates(pt1) layerPt2 = self.toMapCoordinates(pt2) tolerance = layerPt2.x() - layerPt1.x() return tolerance
def __init__(self, parent=None): super(ScribbleArea, self).__init__(parent) self.setAttribute(QtCore.Qt.WA_StaticContents) self.modified = False self.scribbling = False imageSize = QtCore.QSize(500, 500) self.image = QtGui.QImage(imageSize, QtGui.QImage.Format_RGB16) self.userimage = None self.painter = QtGui.QPainter() self.lastPoint = QtCore.QPoint() self.pen = QtGui.QPen()
def canvasReleaseEvent(self, event): #Get the click x = event.pos().x() y = event.pos().y() if event.button() == QtCore.Qt.RightButton: self.finishedDigitizing.emit() return layer = self.canvas.currentLayer() if layer is not None: #the clicked point is our starting point startingPoint = QtCore.QPoint(x, y) #we need a snapper, so we use the MapCanvas snappingUtils (new in 2.8.x) snapper = self.canvas.snappingUtils() snapper.setCurrentLayer(layer) #snapType, snapTolerance, snapUnits = snapper.defaultSettings() # snapType = 0: no snap, 1 = vertex, 2 = segment, 3 = vertex & segment snapMatch = snapper.snapToCurrentLayer(startingPoint, QgsPointLocator.Vertex) #if we have found a vertex if snapMatch.isValid(): # we like to mark the vertex that is choosen p = snapMatch.point() m = QgsVertexMarker(self.canvas) m.setIconType(1) modulo = self.parent.selected_points % 2 if modulo == 0: m.setColor(QtGui.QColor(255, 0, 0)) else: m.setColor(QtGui.QColor(0, 0, 255)) m.setIconSize(12) m.setPenWidth(3) m.setCenter(p) self.markers.append(m) self.vertexFound.emit([p]) else: pass
def drawLineTo(self, endPoint): self.painter.setPen(self.pen) self.painter.drawLine(self.lastPoint, endPoint) self.lastPoint = QtCore.QPoint(endPoint) self.modified = True self.update()
def addMap(self, pixmap): self.painter.begin(self.image) self.painter.setRenderHints(QPainter.Antialiasing, True) self.painter.drawPixmap(QtCore.QPoint(0,0), pixmap) self.painter.end() self.update()
def addMapImage(self, image): self.painter.begin(self.image) self.painter.setRenderHints(QPainter.Antialiasing, True) self.painter.drawImage(QtCore.QPoint(0,0), image) self.painter.end() self.update()