9 votos

¿Cómo asociar mediante programación una capa con una interfaz de usuario personalizada?

Sé que es posible asociar una capa a una interfaz de usuario personalizada para editar atributos de entidades mediante la interfaz QGIS. Pero, ¿es esto posible con Python?

Este enlace muestra cómo lograr el resultado manualmente. Pero me gustaría ser capaz de crear automáticamente capas y que utilice la interfaz de usuario personalizada sin tener que redefinir el método y el archivo de interfaz de usuario cada vez.

17voto

Michael Puntos 11

El diseño del formulario

Usted tiene los siguientes métodos para hacer esto:

QgsVectorLayer.setEditForm( '/ruta/a/su/interfaz de usuario/archivo' ) para proporcionar una interfaz de usuario archivo y QgsVectorLayer.setEditFormInit( 'python.La función' ) para proporcionar un python método init

Así que tener un QgsVectorLayer vl el siguiente hará lo que usted está buscando

vl.setEditForm( '/home/me/uifile.ui' )
vl.setEditFormInit( 'RoadForm.formOpen' )

A partir de QGIS 2.0 usted también tendrá:

QgsVectorLayer.setEditorLayout( QgsVectorLayer::EditorLayout )

Proporcionan QgsVectorLayer.GeneratedLayout, QgsVectorLayer.TabLayout o QgsVectorLayer.UiFileLayout de especificar qué tipo de diseño que desee. Esto le permite especificar el nuevo arrastrar y soltar" (TabLayout).

Widget de diseño

Actualización: a partir de QGIS 2.4 habrá nuevos métodos (QgsVectorLayer.setEditorWidgetV2 y setEditorWidgetV2Config) a cambio de un editor de tipo de widget y su configuración. El método descrito aquí seguirán funcionando, pero está marcado como obsoleto.

Hay un número de métodos relacionados con los widgets específicos que desea utilizar:

Uso QgsVectorLayer.setEditType( fieldIdx, editType ) para especificar el tipo de edición que desea utilizar para el widget de campo de índice fieldIdx. editType es uno de estos.

Para configurar el comportamiento del widget utilice los métodos siguientes (dependiendo de la disponibilidad de widget opciones de configuración del curso):

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