Qgis dopo QEventLoop il point del canvas clicked da un valore strano

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Qgis dopo QEventLoop il point del canvas clicked da un valore strano

Ely Parker

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



_______________________________________________
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013