フィールドを即座に自動的に設定する方法は?


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

行くベクタレイヤーのプロパティ => 全般とでFormFill.formOpenを入力して初期化機能のラインエディット。


qgis 2.10で実行できますか?1.8には多くの違いがありますか?
ディオゴカリブ

はい、まだ可能です
イアンタートン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.