I am developing a plug-in for QGIS. I am creating a form of personalized editing using QtCreator. The form is in the following image
I read a csv file and when i click in a button OK I get a layer with any desired points
My goal: When I click on the "SELECT POINT" I want plot a graph with the point attributes. I see this code
class nameform:
"""QGIS Plugin Implementation."""
def __init__(self, iface):
self.iface = iface
self.dlg.pushButtonContour.clicked.connect(self.open_contour)
self.canvas = self.iface.mapCanvas()
def open_graph(self):
self.pointEmitter = QgsMapToolEmitPoint(self.iface.mapCanvas())
QObject.connect( self.pointEmitter, SIGNAL("canvasClicked(const QgsPoint, Qt::MouseButton)"), self.selectNow)
self.iface.mapCanvas().setMapTool( self.pointEmitter )
def selectNow(self, point, button):
layer = self.iface.activeLayer()
if not layer or layer.type() != QgsMapLayer.VectorLayer:
QMessageBox.warning(None, "No!", "Select a vector layer")
return
width = self.iface.mapCanvas().mapUnitsPerPixel() * 2
rect = QgsRectangle(point.x() - width, point.y() - width, point.x() + width, point.y() + width)
rect = self.iface.mapCanvas().mapRenderer().mapToLayerCoordinates(layer, rect)
layer.select([], rect)
feat = QgsFeature()
ids = []
while layer.nextFeature(feat):
ids.append( feat.id() )
layer.setSelectedFeatures( ids )
But i have a error. When i click in select point and i pick in the point gives me this error
TypeError: arguments did not match any overloaded call:
QgsVectorLayer.select(QgsRectangle, bool): argument 1 has unexpected type 'list'
QgsVectorLayer.select(int): argument 1 has unexpected type 'list'
QgsVectorLayer.select(unknown-type): too many arguments

No comments:
Post a Comment