Làm thế nào để tự động điền vào các trường ngay lập tức?


11

Tôi đang tìm cách tạo một bảng thuộc tính trong đó trường đầu tiên là menu thả xuống (tôi đã đạt được điều này bằng cách sử dụng tiện ích chỉnh sửa 'bản đồ giá trị'), nhưng tôi đang loay hoay tìm phương pháp cho phần tiếp theo;

Sau khi giá trị được chọn từ menu thả xuống, tôi muốn ô liền kề (trong trường tiếp theo) được tự động điền theo giá trị trong menu thả xuống. Ví dụ; nếu giá trị thả xuống = A, thì trường liền kề = 1. Hoặc nếu giá trị thả xuống = B, thì giá trị trường liền kề = 3, v.v.

Tôi nhận ra rằng bằng cách sử dụng máy tính trường, có thể tự động điền các trường như một phần của một quy trình riêng biệt, nhưng tôi muốn có các trường được điền cùng lúc với giá trị thả xuống được chọn nếu có thể.

Tôi đang sử dụng windows 7 và QGIS phiên bản 1.8.

Cảm ơn nhiều.

Câu trả lời:


9

Bạn sẽ cần một con trăn nhỏ để làm điều này.

Bạn có thể đọc bài viết blog rất hay này ở đây

Tạo một tập lệnh tương tự như sau đây được gọi là FillForm.py và đặt nó bên cạnh dự án của bạn

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

Chuyển đến Thuộc tính lớp Vector => Chung và nhập FormFill.formOpen trong chỉnh sửa dòng chức năng init .


Có thể làm điều đó trong qgis 2.10 không? Có nhiều sự khác biệt của 1.8?
Diogo Caribé

vâng, điều đó vẫn có thể xảy ra
Ian Turton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.