Subgroup: Field

Class: QgsFieldExpressionWidget

class qgis.gui.QgsFieldExpressionWidget(parent: QWidget = None)

Bases: PyQt5.QtWidgets.QWidget

QgsFieldExpressionWidget creates a widget with a combo box to display the fields and expression and a button to open the expression dialog

The QgsFieldExpressionWidget class reates a widget to choose fields and edit expressions It contains a combo boxto display the fields and expression and a button to open the expression dialog. The combo box is editable, allowing expressions to be edited inline. The validity of the expression is checked live on key press, invalid expressions are displayed in red. The expression will be added to the model (and the fieldChanged signals emitted) only when editing in the line edit is finished (focus lost, enter key pressed).

Methods

actionEvent
allowEvalErrors Allow accepting expressions with evaluation errors.
appendScope Appends a scope to the current expression context.
asExpression Returns the currently selected field or expression.
changeEvent
childEvent
closeEvent
connectNotify
contextMenuEvent
create
currentField currentField returns the currently selected field or expression if allowed
currentFieldChanged
currentText Returns the current text that is set in the expression area
customEvent
destroy
disconnectNotify
dragEnterEvent
dragLeaveEvent
dragMoveEvent
dropEvent
editExpression open the expression dialog to edit the current or add a new expression
enterEvent
event
expression Returns the currently selected field or expression.
expressionDialogTitle Returns the title used for the expression dialog
expressionEdited when expression is edited by the user in the line edit, it will be checked for validity
expressionEditingFinished when expression has been edited (finished) it will be added to the model
filters currently used filter on list of fields
focusInEvent
focusNextChild
focusNextPrevChild
focusOutEvent
focusPreviousChild
hideEvent
initPainter
inputMethodEvent
isExpression If the content is not just a simple field this method will return true.
isExpressionValid
isSignalConnected
isValidExpression Returns true if the current expression is valid
keyPressEvent
keyReleaseEvent
layer Returns the layer currently associated with the widget.
leaveEvent
metric
mouseDoubleClickEvent
mouseMoveEvent
mousePressEvent
mouseReleaseEvent
moveEvent
nativeEvent
paintEvent
receivers
registerExpressionContextGenerator Register an expression context generator class that will be used to retrieve an expression context for the widget.
resizeEvent
sender
senderSignalIndex
setAllowEvalErrors Allow accepting expressions with evaluation errors.
setExpression Sets the current expression text and if applicable also the field.
setExpressionDialogTitle define the title used in the expression dialog
setField sets the current field or expression in the widget
setFilters setFilters allows fitering according to the type of field
setGeomCalculator Sets the geometry calculator used in the expression dialog
setLayer Sets the layer used to display the fields and expression.
setLeftHandButtonStyle
setRow sets the current row in the widget
sharedPainter
showEvent
tabletEvent
timerEvent
updateLineEditStyle updateLineEditStyle will re-style (color/font) the line edit depending on content and status
updateMicroFocus
wheelEvent

Signals

allowEvalErrorsChanged Allow accepting expressions with evaluation errors.
fieldChanged the signal is emitted when the currently selected field changes [signal] fieldChanged signal with indication of the validity of the expression [signal]

Attributes

actionEvent()
allowEvalErrors(self) → bool

Allow accepting expressions with evaluation errors. This can be useful when we are not able to provide an expression context of which we are sure it’s completely populated.

New in version 3.0.

allowEvalErrorsChanged

Allow accepting expressions with evaluation errors. This can be useful when we are not able to provide an expression context of which we are sure it’s completely populated.

New in version 3.0: [signal]

appendScope(self, scope: QgsExpressionContextScope)

Appends a scope to the current expression context.

Parameters:scope – The scope to add.

New in version 3.2.

asExpression(self) → str

Returns the currently selected field or expression. If a field is currently selected, the returned value will be converted to a valid expression referencing this field (ie enclosing the field name with appropriate quotations).

New in version 2.14.

changeEvent(self, event: QEvent)
childEvent()
closeEvent()
connectNotify()
contextMenuEvent()
create()
currentField(self) → Tuple[str, bool, bool]

currentField returns the currently selected field or expression if allowed

Parameters:
  • isExpression – determines if the string returned is the name of a field or an expression
  • isValid – determines if the expression (or field) returned is valid
currentFieldChanged(self)
currentText(self) → str

Returns the current text that is set in the expression area

customEvent()
destroy()
disconnectNotify()
dragEnterEvent()
dragLeaveEvent()
dragMoveEvent()
dropEvent()
editExpression(self)

open the expression dialog to edit the current or add a new expression

enterEvent()
event()
expression(self) → str

Returns the currently selected field or expression. If a field is currently selected, the returned value will be converted to a valid expression referencing this field (ie enclosing the field name with appropriate quotations).

Alias for asExpression()

New in version 3.0.

expressionDialogTitle(self) → str

Returns the title used for the expression dialog

expressionEdited(self, expression: str)

when expression is edited by the user in the line edit, it will be checked for validity

expressionEditingFinished(self)

when expression has been edited (finished) it will be added to the model

fieldChanged

the signal is emitted when the currently selected field changes [signal] fieldChanged signal with indication of the validity of the expression [signal]

filters(self) → QgsFieldProxyModel.Filters

currently used filter on list of fields

focusInEvent()
focusNextChild()
focusNextPrevChild()
focusOutEvent()
focusPreviousChild()
hideEvent()
initPainter()
inputMethodEvent()
isExpression(self) → bool

If the content is not just a simple field this method will return true.

isExpressionValid(self, expressionStr: str) → bool
isSignalConnected()
isValidExpression(self, expressionError: str = '') → bool

Returns true if the current expression is valid

keyPressEvent()
keyReleaseEvent()
layer(self) → QgsVectorLayer

Returns the layer currently associated with the widget.

See also

setLayer()

leaveEvent()
metric()
mouseDoubleClickEvent()
mouseMoveEvent()
mousePressEvent()
mouseReleaseEvent()
moveEvent()
nativeEvent()
paintEvent()
receivers()
registerExpressionContextGenerator(self, generator: QgsExpressionContextGenerator)

Register an expression context generator class that will be used to retrieve an expression context for the widget.

Parameters:generator – A QgsExpressionContextGenerator class that will be used to create an expression context when required.

New in version 3.0.

resizeEvent()
sender()
senderSignalIndex()
setAllowEvalErrors(self, allowEvalErrors: bool)

Allow accepting expressions with evaluation errors. This can be useful when we are not able to provide an expression context of which we are sure it’s completely populated.

New in version 3.0.

setExpression(self, expression: str)

Sets the current expression text and if applicable also the field. Alias for setField.

New in version 3.0.

setExpressionDialogTitle(self, title: str)

define the title used in the expression dialog

setField(self, fieldName: str)

sets the current field or expression in the widget

setFilters(self, filters: Union[QgsFieldProxyModel.Filters, QgsFieldProxyModel.Filter])

setFilters allows fitering according to the type of field

setGeomCalculator(self, da: QgsDistanceArea)

Sets the geometry calculator used in the expression dialog

setLayer(self, layer: QgsMapLayer)

Sets the layer used to display the fields and expression.

See also

layer()

setLeftHandButtonStyle(self, isLeft: bool)
setRow(self, row: int)

sets the current row in the widget

sharedPainter()
showEvent()
tabletEvent()
timerEvent()
updateLineEditStyle(self, expression: str = '')

updateLineEditStyle will re-style (color/font) the line edit depending on content and status

Parameters:expression – if expression is given it will be evaluated for the given string, otherwise it takes current expression from the model
updateMicroFocus()
wheelEvent()