QgsRelationReferenceSearchWidgetWrapper class

Wraps a relation reference search widget.

Base classes

class QgsSearchWidgetWrapper
Shows a search widget on a filter form.

Constructors, destructors, conversion operators

QgsRelationReferenceSearchWidgetWrapper(QgsVectorLayer* vl, int fieldIdx, QgsMapCanvas* canvas, QWidget* parent = nullptr) explicit
Constructor for QgsRelationReferenceSearchWidgetWrapper.

Public functions

auto applyDirectly() -> bool override
If this is true, then this search widget should take effect directly when its expression changes.
auto expression() const -> QString override
Will be used to access the widget's value.
auto supportedFlags() const -> QgsSearchWidgetWrapper::FilterFlags override
Returns filter flags supported by the search widget.
auto valid() const -> bool override
Returns true if the widget has been properly initialized.
auto value() const -> QVariant
Returns a variant representing the current state of the widget.

Public slots

void onValueChanged(const QVariant& value)
Called when current value of search widget changes.

Protected functions

auto createWidget(QWidget* parent) -> QWidget* override
This method should create a new widget with the provided parent.
void initWidget(QWidget* editor) override
This method should initialize the editor widget with runtime data.

Function documentation

QgsRelationReferenceSearchWidgetWrapper::QgsRelationReferenceSearchWidgetWrapper(QgsVectorLayer* vl, int fieldIdx, QgsMapCanvas* canvas, QWidget* parent = nullptr) explicit

Constructor for QgsRelationReferenceSearchWidgetWrapper.

Parameters
vl associated vector layer
fieldIdx associated field index
canvas optional map canvas
parent parent widget

QString QgsRelationReferenceSearchWidgetWrapper::expression() const override

Will be used to access the widget's value.

Returns The current value the widget represents

Read the value from the widget and return it properly formatted to be saved in the attribute.

If an invalid variant is returned this will be interpreted as no change. Be sure to return a NULL QVariant if it should be set to NULL.

QgsSearchWidgetWrapper::FilterFlags QgsRelationReferenceSearchWidgetWrapper::supportedFlags() const override

Returns filter flags supported by the search widget.

bool QgsRelationReferenceSearchWidgetWrapper::valid() const override

Returns true if the widget has been properly initialized.

Returns Validity status of this widget.

This acts as hint for the calling party if this wrapper can be used after initializing it. If it cannot be used this is a hint to the caller that he may try to find another suitable widget type instead.

QWidget* QgsRelationReferenceSearchWidgetWrapper::createWidget(QWidget* parent) override protected

This method should create a new widget with the provided parent.

Parameters
parent You should set this parent on the created widget.
Returns A new widget

This will only be called if the form did not already provide a widget, so it is not guaranteed to be called! You should not do initialization stuff, which also has to be done for custom editor widgets inside this method. Things like filling comboboxes and assigning other data which will also be used to make widgets on forms created in the QtDesigner usable should be assigned in initWidget().

void QgsRelationReferenceSearchWidgetWrapper::initWidget(QWidget* editor) override protected

This method should initialize the editor widget with runtime data.

Parameters
editor The widget which will represent this attribute editor in a form.

Fill your comboboxes here.