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

Salvo caligiore elyparker1 a gmail.com
Gio 20 Feb 2014 19:15:05 CET


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




-------------- parte successiva --------------
Un allegato HTML ? stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20140220/f1855d95/attachment.html>


Maggiori informazioni sulla lista Gfoss