Estoy desarrollando un plugin en QGIS utilizando lenguaje Python. Este plugin utiliza algoritmos de Processing Toolbox y guardo algunos resultados en la carpeta temporal asignando QgsProcessing.TEMPORARY_OUTPUT
en el campo de salida de cada algoritmo. Sin embargo, mi plugin sólo funciona bien cuando devuelvo el directorio de la carpeta temporal usando QMessageBox
. Si no uso esto, mi plugin no funciona, por lo que no se guarda nada en la carpeta temporal. ¿Por qué ocurre esto?
Ejemplo de funcionamiento del código:
clip_ndvi = Processing.runAlgorithm("saga:cliprasterwithpolygon", {
'INPUT': str(self.dlg.lineEdit.text()),
'POLYGONS': vl,
'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT})
out_ndvi = clip_ndvi['OUTPUT']
QMessageBox.about(self.dlg,'teste', str(out_ndvi))
Ejemplo de código que no funciona:
clip_ndvi = Processing.runAlgorithm("saga:cliprasterwithpolygon", {
'INPUT': str(self.dlg.lineEdit.text()),
'POLYGONS': vl,
'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT})
out_ndvi = clip_ndvi['OUTPUT']
La diferencia está en el QMessageBox
.