Graphics Reference
In-Depth Information
def keyPressEvent(self, event):
if event.key() == Qt.Key_Backspace or \
event.key() == Qt.Key_Delete:
self.removeLastVertex()
event.ignore()
if event.key() == Qt.Key_Return or \
event.key() == Qt.Key_Enter:
points = self.getCapturedPoints()
self.stopCapturing()
if points != None:
self.pointsCaptured(points)
Once again, we've seen this logic before in the
CaptureTool
class. The only difference
is that we're only capturing LineString geometries, so we don't need to worry about the
capture mode.
We now get to the
startCapturing()
and
stopCapturing()
methods. These
create and release the rubber bands used by our map tool:
def startCapturing(self):
color = QColor("red")
color.setAlphaF(0.78)
self.rubberBand = QgsRubberBand(self.canvas,
QGis.Line)
self.rubberBand.setWidth(2)
self.rubberBand.setColor(color)
self.rubberBand.show()
self.tempRubberBand = QgsRubberBand(self.canvas,
QGis.Line)
self.tempRubberBand.setWidth(2)
self.tempRubberBand.setColor(color)
self.tempRubberBand.setLineStyle(Qt.DotLine)
self.tempRubberBand.show()
self.capturing = True