Як автоматично заповнити поля миттєво?


11

Я шукаю створити таблицю атрибутів, де перше поле - це випадаюче меню (я досягну цього за допомогою віджета редагування 'map map'), але я намагаюся знайти метод для наступної частини;

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

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

Я використовую Windows 7 та QGIS версії 1.8.

Дуже дякую.

Відповіді:


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?
Diogo Caribé

так, це все ще можливо
Ian Turton
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.