Salve ho scritto questo codice che entra in un loop aspettando il click sulla mappa per poterlo stampare su console python
qualcuno mi sa dire perché dopo un event loop il punto generato è sempre uguale mentre il point generato dal segnale è diverso ?
class stampaPunto():
def looppoint(self,point,loop):
loop.quit()
self.punto=point
print “creazione del punto”,point,self.punto
def stampaPunto(self):
canvas=iface.mapCanvas()
loop=QEventLoop()
clickTool = QgsMapToolEmitPoint(canvas)
canvas.setMapTool(clickTool)
#self.clickTool.canvasClicked.connect(ottieniPunto)
clickTool.canvasClicked.connect(lambda x: self.looppoint(x,loop))
self.punto=None
print self.punto,“prima del loop”
while self.punto==None :
print self.punto
loop.exec_()
print “dopoloop----”,self.punto
self.punto=None
l’output su console python è
None
creazione del punto (2.4659e+06,4.12719e+06) (2.4659e+06,4.12719e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
creazione del punto (2.46596e+06,4.12723e+06) (2.46596e+06,4.12723e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
creazione del punto (2.46593e+06,4.12729e+06) (2.46593e+06,4.12729e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
creazione del punto (2.4659e+06,4.12722e+06) (2.4659e+06,4.12722e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
creazione del punto (2.46596e+06,4.12729e+06) (2.46596e+06,4.12729e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
creazione del punto (2.466e+06,4.12724e+06) (2.466e+06,4.12724e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
creazione del punto (2.466e+06,4.12722e+06) (2.466e+06,4.12722e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
creazione del punto (2.46595e+06,4.12724e+06) (2.46595e+06,4.12724e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
creazione del punto (2.46589e+06,4.12733e+06) (2.46589e+06,4.12733e+06)
dopoloop---- (5.43231e-312,6.95325e-310)
None
Ai vari click sulla mappa come potete notare l’evento click genera effettivamente un punto diverso che viene messo in self.punto ma che sembra non avere effetto nel resto della procedura dove compare sempre uno stesso point (5.43231e-312,6.95325e-310)
Anche poi viene azzerato regolarmente a none
Forse è una sciocchezza ma non capisco sto comportamento qualcuno mi sa dire che succede?
Ciao a tutti