A field i a element that can have data exchange using a datamap. All filed can have the three components of label, input and datamap. This is how it works.

{
 'type' : 'field',
 'label' : 'Name',
 'input' : {'type' : 'lineedit',},
 'datamap' : {
    'type' : 'direct',
    'readon' : 'load',
    'writeon' : 'losefocus',
    'toupdate' : '@name',
 },
}

The field also support a few extra parameters outside the label and field elements.

'visible' hides both the label and input if set to False
'column' Used by grid to set position in row to the number or you can use "+1" or "-1" any number to add to or subtract from the current value.
'columnspan' Span columns from current position and for the next integer value of columns
'row' Used by grid layout to set the row in the grid. As for column you can use either a number or a string with + or - and a number to add or subtract to the current row value.
'rowspan' Make a number of row to one starting at the current and for integer number of rows
'stretch' Add stretch to the layout. It should be ainteger value.
'alignment' Align the element using 'left', 'right', 'center', 'top', 'bottom', 'justify', 'hcenter', 'vcenter'  or 'absolute'

Label

You do not have to use a label, it is optionally, but if you use it, it will be added to the grid field before the input. This can be a simple text that then becomes a label element or you can use the dict form and set any type your self. Usually a label with extra settings as images or html.

Input

This element is the one that is used to exchange data. The data exchange can be done manually or by using the datamap. The field can be one of the following types:

Type Data exchange Decription
'lineedit' load, getfocus, losefocus, changed Text edit box that support any settings that can be used with a stand alone lineedit element.
'dateedit' load, changed
'timeedit' load, changed
'checkbox' load, changed
'radiobutton' load,
'dropdown' load, getfocus, losefocus, indexchanged
'texteditor' load, getfocus, losefocus
'richtexteditor' load,
'list' load, getfocus, losefocus, selected
'togglelist' load, getfocus, losefocus, selected

Datamap

Used the define how the exchange of data is handled. You set the readon and writeon method and the name of the data field to update using the toupdate element. The only supported type for now is direct.

'type' Only direct is supported for now. New types might come in a later update.
'writeon' When the data is written back. You have different methods, but the most used on lineedit is "losefocus".
'writeaction' An action called after the field value is written.
'readon' The exchange of initial data for the field is done when. The currently most used method is "load".
'readaction' An action called after the field value is read.
'defaultvalue' Is set if the initial value of the field is blank.
'skipblank' default is False. This value tells the system not to do anything if the value exchanged is blank or 0.
'datatype' The data type that should be stored by the field exchange. Default is "unicode". All supported types are: unicode, bool, int, float, date, time, index, list and csv.
'toupdate' the field name to update. The name should be of the form "@fieldname".

The datamap exchange methods depend of the input type. The supported for each type is listed in the input section.