วิธีการเติมฟิลด์โดยอัตโนมัติทันที?


11

ฉันต้องการสร้างตารางคุณลักษณะที่ฟิลด์แรกเป็นเมนูแบบเลื่อนลง (ฉันได้รับสิ่งนี้โดยใช้วิดเจ็ตแก้ไข 'แผนที่ค่า') แต่ฉันพยายามหาวิธีสำหรับส่วนถัดไป

หลังจากเลือกค่าจากเมนูแบบเลื่อนลงฉันต้องการให้เซลล์ที่อยู่ติดกัน (ในฟิลด์ถัดไป) ถูกเติมข้อมูลโดยอัตโนมัติตามค่าในเมนูแบบเลื่อนลง ตัวอย่างเช่น ถ้าค่าแบบหล่นลง = A แล้วเขตข้อมูลที่อยู่ติดกัน = 1 หรือถ้าค่าแบบเลื่อนลง = B แล้วค่าเขตข้อมูลที่อยู่ติดกัน = 3 ฯลฯ

ฉันตระหนักว่าการใช้เครื่องคำนวณฟิลด์เป็นไปได้ที่จะเติมฟิลด์อัตโนมัติโดยเป็นส่วนหนึ่งของกระบวนการแยกต่างหาก แต่ฉันต้องการให้ฟิลด์มีการเติมพร้อมกันในขณะที่เลือกค่าแบบหล่นลงหากเป็นไปได้

ฉันใช้ windows 7 และ QGIS เวอร์ชัน 1.8

ขอบคุณมาก.

คำตอบ:


9

คุณจะต้องใช้ python เล็กน้อยในการดำเนินการนี้

คุณสามารถอ่านโพสต์บล็อกที่ดีมากที่นี่

สร้างสคริปต์ที่คล้ายกับที่เรียกว่า 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แล้วป้อน FormFill.formOpen ในการแก้ไขบรรทัดฟังก์ชั่น Init


เป็นไปได้ไหมที่จะทำใน qgis 2.10? 1.8 มีความแตกต่างมากมายหรือไม่?
Diogo Caribé

ใช่มันยังคงเป็นไปได้
Ian Turton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.