Message posté par : Yoann Lecomte
----------------------------------------
Cela ne fonctionne pas car lorsque vous générez le map tool depuis votre fonction vous le
stockez dans une variable locale.
Lorsque la fonction a fini de s'exécuter, le ramasse miette de python détruit les
variables locales qui ne sont plus utile.
Pour résoudre cela, vous pouvez par exemple travailler avec une classe ou rendre la
variable tool global (je vous le déconseille).
Voici un exemple de classe:
-----------------
Code :
class DonnerPoint():
def __init__(self):
self.canvas = iface.mapCanvas()
self.tool = QgsMapToolEmitPoint(self.canvas)
self.tool.setCursor(Qt.SizeAllCursor)
def activate(self):
self.tool.canvasClicked.connect(self.on_click)
self.canvas.setMapTool(self.tool)
def unactivate(self):
self.tool.canvasClicked.disconnect(self.on_click)
self.canvas.unsetMapTool(self.tool)
def on_click(self, point):
click = (point.x(), point.y())
print (QgsPointXY(*click))
self.unactivate()
p = DonnerPoint()
p.activate()
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=365013#p365013
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net