La navegación por el QGIS código fuente, he encontrado una función específica, llamada buildSupportedRasterFileFilter. Este código funciona bien en el QGIS consola de python:
from PyQt4.QtCore import *
a = QString()
QgsRasterLayer.buildSupportedRasterFileFilter(a)
# "a" contains a string that can be used in a Dialog Window.
...
Ahora estoy buscando un método similar que excluye sólo lectura formatos.
EDIT: Hay una muy buena aplicación de un procedimiento para abrir archivos ráster en la GDAL Herramientas de plugins. Para usarlo:
- Descargar el QGIS código fuente. Copie el archivo [source_dir]/python/plugins/GdalTools/tools/GdalTools_utils.py a su directorio de plugins.
Dentro de su ventana de diálogo en la clase, importar el módulo:
import GdalTools_utils as Utils
implementar el siguiente método:
def get_raster_name(self):
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
# rasterize supports output file creation for GDAL 1.8
gdalVersion = Utils.GdalConfig.version()
if gdalVersion >= "1.8.0":
fileDialogFunc = Utils.FileDialog.getSaveFileName
else:
fileDialogFunc = Utils.FileDialog.getOpenFileName
outputFile = fileDialogFunc(self, self.tr( "Select the raster file to save the results to" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter)
if outputFile.isEmpty():
return
Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)
# required either -ts or -tr to create the output file
if gdalVersion >= "1.8.0":
if not QtCore.QFileInfo(outputFile).exists():
QMessageBox.information( self, self.tr( "Output size required" ), self.tr( "The output file doesn't exist. You must set up the output size to create it." ) )
return outputFile
Ahora, llame al método cuando se necesita un archivo. El código es tomado de un otro archivo de la Gdal Herramientas (doRasterize.py). Recuerde insertar un aviso de derechos de autor en la utils archivo, para especificar que se han tomado desde el QGIS código fuente.