miércoles, 15 de noviembre de 2017

Cómo configurar un QFileDialog en un plugin de QGIS para que sólo solicite el directorio

En un post anterior se implementó un QFileDialog con QtDesigner para QGIS. Éste permitía solicitar el nombre del archivo con el cual se deseaba grabar nuestro resultado. Sin embargo, cuando se tiene un lote de archivos o un directorio lo adecuado es que solicite un directorio completo.

En este caso la implementación es más sencilla que en el caso del post anterior y emplea el método 'getExistingDirectory' de QFileDialog; tal como se presenta en el código condensado siguiente de un plugin:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.
.
.
from PyQt4.QtGui import QAction, QIcon, QTableWidgetItem, QFileDialog
.
.
.
    def add_action(
.
.
.
        self.dlg.lineEdit.clear()
        self.dlg.pushButton.clicked.connect(self.select_output_directory)
.
.
.
    def select_output_directory(self):
        
        folder = str(QFileDialog.getExistingDirectory(self.dlg, "Select Directory"))
 
        self.dlg.lineEdit.setText(folder)
.
.
.

El requerimiento de todo un directorio se basa en que se desea grabar un lote o una selección de archivos vectoriales de una sola vez (no uno por uno con un nombre determinado). En la imagen siguiente se observa que las líneas de código anteriores funcionan en el plugin tal como se esperaba.


No hay comentarios: