Как автоматически заполнить поля мгновенно?

11

Я пытаюсь создать таблицу атрибутов, где первое поле представляет собой раскрывающееся меню (я добился этого с помощью виджета редактирования «Карта значений»), но я изо всех сил пытаюсь найти метод для следующей части;

После того, как значение было выбрано из раскрывающегося меню, я бы хотел, чтобы соседняя ячейка (в следующем поле) автоматически заполнялась в соответствии со значением в раскрывающемся меню. Так, например; если раскрывающееся значение = A, то смежное поле = 1. Или если раскрывающееся значение = B, то значение смежного поля = 3 и т. д.

Я понимаю, что с помощью калькулятора полей можно автоматически заполнять поля как часть отдельного процесса, но я бы хотел, чтобы поля заполнялись одновременно с выбором выпадающего значения, если это возможно.

Я использую Windows 7 и QGIS версии 1.8.

Большое спасибо.

ffinnm
источник

Ответы:

9

Вам понадобится маленький питон, чтобы сделать это.

Вы можете прочитать это очень хорошее сообщение в блоге здесь

Создайте скрипт, похожий на следующий, с именем FillForm.py и поместите его рядом с вашим проектом.

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' )

Перейдите в Свойства векторного слоя => Общие и введите FormFill.formOpen в редактировании строки функции Init .

Матиас Кун
источник
Возможно ли это сделать в qgis 2.10? Много ли отличий от 1,8?
Диого Карибе
да, это все еще возможно
Ян Тертон