7 votos

Puede QGIS mapa de lona de actualización mientras que la secuencia de comandos de python se ejecuta?

Quiero automatizar una actualización periódica del mapa de QGIS lienzo con actualización de los shapefiles. Un plugin de Python o secuencia de comandos de consola no permite que el mapa se actualizará hasta que el script finaliza. Es allí una manera de forzar un mapa de actualización en un plugin o script, o es una aplicación independiente que se requiere?

El uso de v1.7.4 ahora, pero podría migrar a la versión más reciente.

4voto

Lazy Ninja Puntos 131

Usted puede utilizar el pitón roscado de la biblioteca para ejecutar una función periódica:

He utilizado las siguientes instrucciones para eliminar un conjunto de gráficos después de 3 segundos:

from threading import Timer
Timer( 3, self._clearGraphicLayer, ()).start()

def _clearGraphicLayer(self):
  for graphic in  self.graphicsLayer: 
    self.iface.mapCanvas().scene().removeItem(graphic)

  self.iface.mapCanvas().refresh()
  self.graphicsLayer = []

Y si es necesario se puede tener la función de devolución de llamada de reiniciar el temporizador de si una determinada condición no se cumple. Pero mirar hacia fuera si usted utiliza este módulo equivocado usted puede bloquear la aplicación en su totalidad.

Más info: https://docs.python.org/2/library/threading.html

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X