Class: QgsAbstractRelationEditorWidget

class qgis.gui.QgsAbstractRelationEditorWidget

Bases: PyQt5.QtWidgets.QWidget

Base class to build new relation widgets.

New in version 3.18.

QgsAbstractRelationEditorWidget(config: Dict[str, Any], parent: QWidget = None) Constructor

Methods

actionEvent

addFeature

Adds new features with given geometry

afterSetRelationFeature

A hook called right after setRelationFeature() is executed, but before updateUi() is called.

afterSetRelations

A hook called right after setRelations() is executed, but before updateUi() is called.

beforeSetRelationFeature

A hook called right before setRelationFeature() is executed.

beforeSetRelations

A hook called right before setRelations() is executed.

changeEvent

childEvent

closeEvent

config

Returns the widget configuration

connectNotify

contextMenuEvent

create

customEvent

deleteFeature

Delete a feature with given fid

deleteFeatures

Deletes the features with fids

destroy

disconnectNotify

dragEnterEvent

dragLeaveEvent

dragMoveEvent

dropEvent

duplicateFeature

Duplicates a feature

duplicateFeatures

Duplicates features

editorContext

Returns the attribute editor context.

enterEvent

event

feature

Returns the widget's current feature If the widget is in multiedit mode only the first is returned

features

Returns the widget's current features

focusInEvent

focusNextChild

focusNextPrevChild

focusOutEvent

focusPreviousChild

forceSuppressFormPopup

Determines the force suppress form popup status that is configured for this widget

hideEvent

initPainter

inputMethodEvent

isSignalConnected

keyPressEvent

keyReleaseEvent

label

Determines the label of this element

leaveEvent

linkFeature

Links a new feature to the relation

metric

mouseDoubleClickEvent

mouseMoveEvent

mousePressEvent

mouseReleaseEvent

moveEvent

multiEditModeActive

Returns true if editing multiple features at a time

nativeEvent

nmRelation

Returns the nm relation

nmRelationId

Determines the relation id of the second relation involved in an N:M relation.

onLinkFeatureDlgAccepted

Called when the link feature dialog is confirmed by the user

paintEvent

parentFormValueChanged

Called when an attribute value in the parent widget has changed to newValue

receivers

relation

Returns the relation

resizeEvent

saveEdits

Saves the current modifications in the relation

sender

senderSignalIndex

setConfig

Defines the widget configuration

setEditorContext

Sets the editor context

setFeature

Sets the feature being edited and updates the UI unless update is set to False

setForceSuppressFormPopup

Sets force suppress form popup status with forceSuppressFormPopup configured for this widget

setLabel

Sets label for this element If it's empty it takes the relation id as label

setMultiEditFeatureIds

Set multiple feature to edit simultaneously.

setNmRelationId

Sets nmRelationId for the relation id of the second relation involved in an N:M relation.

setRelationFeature

Sets the relation and the feature

setRelations

Sets the relation(s) for this widget If only one relation is set, it will act as a simple 1:N relation widget If both relations are set, it will act as an N:M relation widget inserting and deleting entries on the intermediate table as required.

setShowLabel

Defines if a title label should be shown for this widget.

setTitle

Sets the title of the widget, if it is wrapped within a QgsCollapsibleGroupBox

sharedPainter

showEvent

Refresh the UI when the widget becomes visible

showLabel

Defines if a title label should be shown for this widget.

tabletEvent

timerEvent

toggleEditing

Toggles editing state of the widget

unlinkFeature

Unlinks a feature with given fid

unlinkFeatures

Unlinks the features with fids

updateMicroFocus

updateTitle

Updates the title contents to reflect the current state of the widget

updateUi

A hook called every time the state of the relation editor widget has changed via calling its set* methods or slots, e.g.

wheelEvent

Signals

relatedFeaturesChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

actionEvent(self, QActionEvent)
addFeature(self, geometry: QgsGeometry = QgsGeometry()) object

Adds new features with given geometry

New in version 3.24.

Parameters

geometry (QgsGeometry = QgsGeometry()) –

Return type

object

afterSetRelationFeature(self)

A hook called right after setRelationFeature() is executed, but before updateUi() is called. Used to update the UI once setting the relation feature is done. Check QgsRealationEditorWidget as an example.

afterSetRelations(self)

A hook called right after setRelations() is executed, but before updateUi() is called. Used to update the UI once setting the relations is done. Check QgsRealationEditorWidget as an example.

beforeSetRelationFeature(self, newRelation: QgsRelation, newFeature: QgsFeature)

A hook called right before setRelationFeature() is executed. Used to update the UI once setting the relation feature is done. Check QgsRealationEditorWidget as an example.

Parameters
beforeSetRelations(self, newRelation: QgsRelation, newNmRelation: QgsRelation)

A hook called right before setRelations() is executed. Used to manipulate UI once setting the relations is done. Check QgsRealationEditorWidget as an example.

Parameters
changeEvent(self, QEvent)
childEvent(self, QChildEvent)
closeEvent(self, QCloseEvent)
config(self) Dict[str, Any]

Returns the widget configuration

Return type

Dict[str, Any]

connectNotify(self, QMetaMethod)
contextMenuEvent(self, QContextMenuEvent)
create(self, window: PyQt5.sip.voidptr = 0, initializeWindow: bool = True, destroyOldWindow: bool = True)
customEvent(self, QEvent)
deleteFeature(self, fid: int =  ::QgsFeatureId())

Delete a feature with given fid

Parameters

fid (int = ::QgsFeatureId()) –

deleteFeatures(self, fids: object)

Deletes the features with fids

Parameters

fids (object) –

destroy(self, destroyWindow: bool = True, destroySubWindows: bool = True)
disconnectNotify(self, QMetaMethod)
dragEnterEvent(self, QDragEnterEvent)
dragLeaveEvent(self, QDragLeaveEvent)
dragMoveEvent(self, QDragMoveEvent)
dropEvent(self, QDropEvent)
duplicateFeature(self, fid: int)

Duplicates a feature

Parameters

fid (int) –

duplicateFeatures(self, fids: object)

Duplicates features

Parameters

fids (object) –

editorContext(self) QgsAttributeEditorContext

Returns the attribute editor context.

Return type

QgsAttributeEditorContext

enterEvent(self, QEvent)
event(self, QEvent) bool
feature(self) QgsFeature

Returns the widget’s current feature If the widget is in multiedit mode only the first is returned

See also

features()

Return type

QgsFeature

features(self) List[QgsFeature]

Returns the widget’s current features

New in version 3.24.

Return type

List[QgsFeature]

focusInEvent(self, QFocusEvent)
focusNextChild(self) bool
focusNextPrevChild(self, bool) bool
focusOutEvent(self, QFocusEvent)
focusPreviousChild(self) bool
forceSuppressFormPopup(self) bool

Determines the force suppress form popup status that is configured for this widget

Return type

bool

hideEvent(self, QHideEvent)
initPainter(self, QPainter)
inputMethodEvent(self, QInputMethodEvent)
isSignalConnected(self, QMetaMethod) bool
keyPressEvent(self, QKeyEvent)
keyReleaseEvent(self, QKeyEvent)
label(self) str

Determines the label of this element

Deprecated since version QGIS: 3.20 label is handled directly in QgsAttributeForm.

Return type

str

leaveEvent(self, QEvent)
linkFeature(self)

Links a new feature to the relation

metric(self, QPaintDevice.PaintDeviceMetric) int
mouseDoubleClickEvent(self, QMouseEvent)
mouseMoveEvent(self, QMouseEvent)
mousePressEvent(self, QMouseEvent)
mouseReleaseEvent(self, QMouseEvent)
moveEvent(self, QMoveEvent)
multiEditModeActive(self) bool

Returns true if editing multiple features at a time

New in version 3.24.

Return type

bool

nativeEvent(self, Union[QByteArray, bytes, bytearray], PyQt5.sip.voidptr) Tuple[bool, int]
nmRelation(self) QgsRelation

Returns the nm relation

New in version 3.18.

Return type

QgsRelation

nmRelationId(self) Any

Determines the relation id of the second relation involved in an N:M relation.

Return type

Any

onLinkFeatureDlgAccepted(self)

Called when the link feature dialog is confirmed by the user

paintEvent(self, QPaintEvent)
parentFormValueChanged(self, attribute: str, newValue: Any)

Called when an attribute value in the parent widget has changed to newValue

Parameters
  • attribute (str) –

  • newValue (Any) –

receivers(self, PYQT_SIGNAL) int
relatedFeaturesChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type

PYQT_SIGNAL

relation(self) QgsRelation

Returns the relation

New in version 3.18.

Return type

QgsRelation

resizeEvent(self, QResizeEvent)
saveEdits(self)

Saves the current modifications in the relation

sender(self) QObject
senderSignalIndex(self) int
setConfig(self, config: Dict[str, Any])

Defines the widget configuration

Parameters

config (Dict[str) –

setEditorContext(self, context: QgsAttributeEditorContext)

Sets the editor context

Note

if context cadDockWidget is null, it won’t be possible to digitize the geometry of a referencing feature from this widget

Parameters

context (QgsAttributeEditorContext) –

setFeature(self, feature: QgsFeature, update: bool = True)

Sets the feature being edited and updates the UI unless update is set to False

Parameters
  • feature (QgsFeature) –

  • update (bool = True) –

setForceSuppressFormPopup(self, forceSuppressFormPopup: bool)

Sets force suppress form popup status with forceSuppressFormPopup configured for this widget

Parameters

forceSuppressFormPopup (bool) –

setLabel(self, label: str = '')

Sets label for this element If it’s empty it takes the relation id as label

Parameters

label (str = '') –

setMultiEditFeatureIds(self, fids: object)

Set multiple feature to edit simultaneously.

Parameters

fids (object) – Multiple Id of features to edit

New in version 3.24.

setNmRelationId(self, nmRelationId: Any = None)

Sets nmRelationId for the relation id of the second relation involved in an N:M relation. If it’s empty, then it’s considered as a 1:M relationship.

Parameters

nmRelationId (Any = None) –

setRelationFeature(self, relation: QgsRelation, feature: QgsFeature)

Sets the relation and the feature

Parameters
setRelations(self, relation: QgsRelation, nmrelation: QgsRelation)

Sets the relation(s) for this widget If only one relation is set, it will act as a simple 1:N relation widget If both relations are set, it will act as an N:M relation widget inserting and deleting entries on the intermediate table as required.

Parameters
  • relation (QgsRelation) – Relation referencing the edited table

  • nmrelation (QgsRelation) – Optional reference from the referencing table to a 3rd N:M table

setShowLabel(self, showLabel: bool)

Defines if a title label should be shown for this widget.

Deprecated since version QGIS: 3.20 label is handled directly in QgsAttributeForm.

Parameters

showLabel (bool) –

setTitle(self, title: str)

Sets the title of the widget, if it is wrapped within a QgsCollapsibleGroupBox

Deprecated since version QGIS: 3.20 label is handled directly in QgsAttributeForm.

Parameters

title (str) –

sharedPainter(self) QPainter
showEvent(self, QShowEvent)

Refresh the UI when the widget becomes visible

showLabel(self) bool

Defines if a title label should be shown for this widget.

Deprecated since version QGIS: 3.20 label is handled directly in QgsAttributeForm.

Return type

bool

tabletEvent(self, QTabletEvent)
timerEvent(self, QTimerEvent)
toggleEditing(self, state: bool)

Toggles editing state of the widget

Parameters

state (bool) –

unlinkFeature(self, fid: int =  ::QgsFeatureId())

Unlinks a feature with given fid

Parameters

fid (int = ::QgsFeatureId()) –

unlinkFeatures(self, fids: object)

Unlinks the features with fids

Parameters

fids (object) –

updateMicroFocus(self)
updateTitle(self)

Updates the title contents to reflect the current state of the widget

Deprecated since version QGIS: 3.20 label is handled directly in QgsAttributeForm.

updateUi(self)

A hook called every time the state of the relation editor widget has changed via calling its set* methods or slots, e.g. changed relation, added feature, etc. Should be used to refresh the UI regarding the new data. Check QgsRealationEditorWidget as an example.

wheelEvent(self, QWheelEvent)