4 votos

La creación de capas vectoriales (Shapefile) con QgsNewVectorLayerDialog

Yo tengo el siguiente código que muestra una ventana para crear un nuevo Shapefile:

from qgis.gui import QgsNewVectorLayerDialog

new_vector_layer_dialog = QgsNewVectorLayerDialog()
new_vector_layer_dialog.show()

¿Cómo puedo colocar una bandera en el Polígono por el código, y no la línea o el punto?

También cuando usted presione el OK botón, cómo obtener el cuadro de diálogo para seleccionar la ubicación donde desea guardar el archivo de forma?

Cuando usted haga clic en OK, no crear un Shapefile, pero justo se cierra el cuadro de diálogo. Además, no se crea una capa de vector en la Layers Panel.

¿Qué tengo que hacer para crear la capa y lo carga en la Layers Panel?

enter image description here

enter image description here

1voto

Elliott Maynard Puntos 11

Usted necesita llamar al método estático runAndCreateLayer en lugar de show:

from qgis.gui import QgsNewVectorLayerDialog

layerPath = QgsNewVectorLayerDialog().runAndCreateLayer()
if layerPath:
    layer = QgsVectorLayer(layerPath, 'new layer', 'ogr')
    QgsMapLayerRegistry.instance().addMapLayer(layer)

Sobre el Polígono botón de radio, el diálogo parece que no vamos a hacer eso. Se podría hacer algo como esto:

myDialog.findChild( QRadioButton, 'mPolygonRadioButton').setChecked(True)

Que será, no obstante, se sobrescribe cuando se llama a runAndCreateLayer.

Nota: El QgsNewVectorLayerDialog clase para QGIS 3 permite establecer un CRS. Configuración de tipo de geometría podría ser una característica de solicitud de QGIS.

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