Como preencher automaticamente os campos instantaneamente?

11

Estou procurando criar uma tabela de atributos em que o primeiro campo seja um menu suspenso (consegui isso usando o widget de edição 'mapa de valores'), mas estou tentando encontrar um método para a próxima parte;

Depois que o valor tiver sido selecionado no menu suspenso, eu gostaria que a célula adjacente (no próximo campo) fosse preenchida automaticamente de acordo com o valor no menu suspenso. Então, por exemplo; se valor suspenso = A, campo adjacente = 1. Ou se valor suspenso = B, valor adjacente = 3, etc.

Percebo que, usando a calculadora de campos, é possível preencher automaticamente os campos como parte de um processo separado, mas eu gostaria de ter os campos preenchidos ao mesmo tempo em que o valor suspenso é selecionado, se possível.

Estou usando o Windows 7 e o QGIS versão 1.8.

Muito Obrigado.

ffinnm
fonte

Respostas:

9

Você precisará de um pequeno python para fazer isso.

Você pode ler este post muito bom aqui

Crie um script semelhante ao seguinte chamado FillForm.py e coloque-o ao lado do seu projeto

from PyQt4.QtCore import *
from PyQt4.QtGui import *

aField = None
bField = None

def formOpen(dialog,layerid,featureid):
    global aField
    aField = dialog.findChild(QComboBox,"fieldA")
    global bField
    bField = dialog.findChild(QLineEdit,"fieldB")
    aField.currentIndexChanged.connect( aChanged )

def aChanged( value ):
    if ( aField.currentText() == 'A' )
        bField.setText( '1' )
    elif ( aField.currentText() == 'B' )
        bField.setText( '2' )

Vá para Propriedades da camada de vetor => Geral e insira FormFill.formOpen na edição da linha de função Init .

Matthias Kuhn
fonte
É possível fazê-lo no qgis 2.10? Existem muitas diferenças de 1,8?
Diogo Caribé
sim, ainda é possível
Ian Turton