Estoy trabajando en un pequeño plugin de QGIS Python y quiero obtener las coordenadas X/Y de un clic del usuario en el lienzo. Tengo un pequeño UI llamado desde un botón en una barra de herramientas. Después de llenar la UI con información me gustaría obtener las coordenadas XY. Estoy usando QGIS 3 con Python 3 y QT5.
He intentado utilizar los pasos de Cómo obtener las coordenadas de los puntos al hacer clic con el ratón en PyQGIS pero cuando se ejecuta salta directamente al final sin llamar a la función display_point y no hay reacción a los clics del ratón. ¿Hay algún cambio en la versión actual de QGIS?
Mi código, que está dentro de la clase del plugin y es llamado por un botón de la barra de herramientas sin UI.
def run2(self):
# a reference to our map canvas
canvas = iface.mapCanvas()
# this QGIS tool emits as QgsPoint after each click on the map canvas
pointTool = QgsMapToolEmitPoint(canvas)
# Checkpoint
print("S 1")
pointTool.canvasClicked.connect( self.display_point )
canvas.setMapTool( pointTool )
# Checkpoint
print("S 3")
def display_point( pointTool ):
print('({:.4f}, {:.4f})'.format(pointTool[0], pointTool[1]))
# Checkpoint
print("S 2")
0 votos
Probaré la sugerencia de clase de : Cómo obtener coordenadas de puntos al hacer clic con el ratón en PyQGIS arriba en un corto plug in para ver cómo funciona.