如何立即自动填充字段?


11

我正在尝试创建一个属性表,其中的第一个字段是一个下拉菜单(我已经通过使用“值图”编辑小部件实现了此目的),但是我正努力寻找下一部分的方法。

从下拉菜单中选择值之后,我希望根据下拉菜单中的值自动填充相邻的单元格(在下一个字段中)。例如 如果下拉值= A,则相邻字段= 1;或者,如果下拉值= B,则相邻字段值= 3,依此类推。

我意识到,通过使用字段计算器,可以将字段自动填充为一个单独的过程的一部分,但是我希望在选择下拉值的同时,同时填充字段。

我正在使用Windows 7和QGIS版本1.8。

非常感谢。

Answers:


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

转到矢量层属性 => 常规,然后在Init函数行编辑中输入FormFill.formOpen 。


是否可以在qgis 2.10中做到这一点?1.8有很多区别吗?
DiogoCaribé15年

是的,这仍然是可能的
伊恩·特顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.