필드를 자동으로 즉시 채우는 방법?


11

첫 번째 필드가 드롭 다운 메뉴 인 속성 테이블을 만들려고합니다 ( '값 맵'편집 위젯을 사용하여 이것을 달성했습니다).하지만 다음 부분에 대한 방법을 찾기 위해 고심하고 있습니다.

드롭 다운 메뉴에서 값을 선택한 후 드롭 다운 메뉴의 값에 따라 인접한 셀 (다음 필드)을 자동으로 채우고 싶습니다. 예를 들어; 드롭 다운 값이 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' )

Vector Layer Properties => General로 이동 하여 Init function line edit에 FormFill.formOpen을 입력하십시오 .


qgis 2.10에서 할 수 있습니까? 1.8의 많은 차이점이 있습니까?
Diogo Caribé

네, 여전히 가능합니다
Ian Turton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.