QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsWidgetWrapper Class Referenceabstract

Manages an editor widget Widget and wrapper share the same parent. More...

#include <qgswidgetwrapper.h>

Inheritance diagram for QgsWidgetWrapper:
Inheritance graph
[legend]

Public Types

enum class  Property : int { RootPath = 0 , DocumentViewerContent , StorageUrl }
 Data defined properties for different editor widgets. More...
 

Public Slots

virtual void setEnabled (bool enabled)
 Is used to enable or disable the edit functionality of the managed widget. More...
 
virtual void setFeature (const QgsFeature &feature)=0
 Is called when the value of the widget needs to be changed. More...
 

Signals

void contextChanged ()
 Signal when QgsAttributeEditorContext mContext changed. More...
 

Public Member Functions

 QgsWidgetWrapper (QgsVectorLayer *vl, QWidget *editor=nullptr, QWidget *parent=nullptr)
 Create a new widget wrapper. More...
 
QVariantMap config () const
 Returns the whole config. More...
 
QVariant config (const QString &key, const QVariant &defaultVal=QVariant()) const
 Use this inside your overridden classes to access the configuration. More...
 
const QgsAttributeEditorContextcontext () const
 Returns information about the context in which this widget is shown. More...
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the editor widget's property collection, used for data defined overrides. More...
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the editor widget's property collection, used for data defined overrides. More...
 
QgsVectorLayerlayer () const
 Returns the vector layer associated with the widget. More...
 
void notifyAboutToSave ()
 Notify this widget, that the containing form is about to save and that any pending changes should be pushed to the edit buffer or they might be lost. More...
 
void setConfig (const QVariantMap &config)
 Will set the config of this wrapper to the specified config. More...
 
void setContext (const QgsAttributeEditorContext &context)
 Set the context in which this widget is shown. More...
 
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the editor widget's property collection, used for data defined overrides. More...
 
virtual bool valid () const =0
 Returns true if the widget has been properly initialized. More...
 
QWidget * widget ()
 Access the widget managed by this wrapper. More...
 
template<class T >
T * widget ()
 Access the widget managed by this wrapper and cast it to a given type. More...
 

Static Public Member Functions

static QgsWidgetWrapperfromWidget (QWidget *widget)
 Will return a wrapper for a given widget. More...
 
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the editor widget property definitions. More...
 

Protected Member Functions

virtual QWidget * createWidget (QWidget *parent)=0
 This method should create a new widget with the provided parent. More...
 
virtual void initWidget (QWidget *editor)
 This method should initialize the editor widget with runtime data. More...
 

Protected Attributes

QgsPropertyCollection mPropertyCollection
 Data defined property collection. More...
 

Detailed Description

Manages an editor widget Widget and wrapper share the same parent.

A wrapper controls one attribute editor widget and is able to create a default widget or use a pre-existent widget. It is able to set the widget to the value implied by a field of a vector layer, or return the value it currently holds. Every time it is changed it has to emit a valueChanged signal. If it fails to do so, there is no guarantee that the changed status of the widget will be saved.

Definition at line 52 of file qgswidgetwrapper.h.

Member Enumeration Documentation

◆ Property

enum QgsWidgetWrapper::Property : int
strong

Data defined properties for different editor widgets.

Enumerator
RootPath 

Root path for external resource.

DocumentViewerContent 

Document type for external resource.

StorageUrl 

Storage URL for external resource.

Definition at line 78 of file qgswidgetwrapper.h.

Constructor & Destructor Documentation

◆ QgsWidgetWrapper()

QgsWidgetWrapper::QgsWidgetWrapper ( QgsVectorLayer vl,
QWidget *  editor = nullptr,
QWidget *  parent = nullptr 
)
explicit

Create a new widget wrapper.

Parameters
vlThe layer on which the field is
editorAn editor widget. Can be nullptr if one should be autogenerated.
parentA parent widget for this widget wrapper and the created widget.

Definition at line 38 of file qgswidgetwrapper.cpp.

Member Function Documentation

◆ config() [1/2]

QVariantMap QgsWidgetWrapper::config ( ) const

Returns the whole config.

Definition at line 82 of file qgswidgetwrapper.cpp.

◆ config() [2/2]

QVariant QgsWidgetWrapper::config ( const QString &  key,
const QVariant &  defaultVal = QVariant() 
) const

Use this inside your overridden classes to access the configuration.

Parameters
keyThe configuration option you want to load
defaultValDefault value
Returns
the value assigned to this configuration option

Definition at line 73 of file qgswidgetwrapper.cpp.

◆ context()

const QgsAttributeEditorContext & QgsWidgetWrapper::context ( ) const

Returns information about the context in which this widget is shown.

Definition at line 87 of file qgswidgetwrapper.cpp.

◆ contextChanged

void QgsWidgetWrapper::contextChanged ( )
signal

Signal when QgsAttributeEditorContext mContext changed.

Since
QGIS 3.4

◆ createWidget()

virtual QWidget* QgsWidgetWrapper::createWidget ( QWidget *  parent)
protectedpure virtual

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

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().

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

Implemented in QgsValueRelationWidgetWrapper, QgsValueRelationSearchWidgetWrapper, QgsValueMapWidgetWrapper, QgsValueMapSearchWidgetWrapper, QgsUuidWidgetWrapper, QgsUniqueValuesWidgetWrapper, QgsTextWidgetWrapper, QgsTextEditWrapper, QgsSpacerWidgetWrapper, QgsRelationWidgetWrapper, QgsRelationReferenceWidgetWrapper, QgsRelationReferenceSearchWidgetWrapper, QgsRelationAggregateSearchWidgetWrapper, QgsRangeWidgetWrapper, QgsQmlWidgetWrapper, QgsListWidgetWrapper, QgsKeyValueWidgetWrapper, QgsJsonEditWrapper, QgsHtmlWidgetWrapper, QgsHiddenWidgetWrapper, QgsGeometryWidgetWrapper, QgsExternalResourceWidgetWrapper, QgsEnumerationWidgetWrapper, QgsDefaultSearchWidgetWrapper, QgsDateTimeSearchWidgetWrapper, QgsDateTimeEditWrapper, QgsColorWidgetWrapper, QgsClassificationWidgetWrapper, QgsCheckboxWidgetWrapper, QgsCheckboxSearchWidgetWrapper, QgsBinaryWidgetWrapper, and QgsActionWidgetWrapper.

◆ dataDefinedProperties() [1/2]

QgsPropertyCollection& QgsWidgetWrapper::dataDefinedProperties ( )
inline

Returns a reference to the editor widget's property collection, used for data defined overrides.

See also
setDataDefinedProperties()
Note
not available in Python bindings

Definition at line 186 of file qgswidgetwrapper.h.

◆ dataDefinedProperties() [2/2]

const QgsPropertyCollection& QgsWidgetWrapper::dataDefinedProperties ( ) const
inline

Returns a reference to the editor widget's property collection, used for data defined overrides.

See also
setDataDefinedProperties()
Property

Definition at line 193 of file qgswidgetwrapper.h.

◆ fromWidget()

QgsWidgetWrapper * QgsWidgetWrapper::fromWidget ( QWidget *  widget)
static

Will return a wrapper for a given widget.

Parameters
widgetThe widget which was created by a wrapper
Returns
The wrapper for the widget or nullptr

Definition at line 97 of file qgswidgetwrapper.cpp.

◆ initWidget()

void QgsWidgetWrapper::initWidget ( QWidget *  editor)
protectedvirtual

◆ layer()

QgsVectorLayer * QgsWidgetWrapper::layer ( ) const

Returns the vector layer associated with the widget.

Definition at line 92 of file qgswidgetwrapper.cpp.

◆ notifyAboutToSave()

void QgsWidgetWrapper::notifyAboutToSave ( )

Notify this widget, that the containing form is about to save and that any pending changes should be pushed to the edit buffer or they might be lost.

Since
QGIS 3.2

Definition at line 102 of file qgswidgetwrapper.cpp.

◆ propertyDefinitions()

const QgsPropertiesDefinition & QgsWidgetWrapper::propertyDefinitions ( )
static

Returns the editor widget property definitions.

Definition at line 22 of file qgswidgetwrapper.cpp.

◆ setConfig()

void QgsWidgetWrapper::setConfig ( const QVariantMap &  config)

Will set the config of this wrapper to the specified config.

Parameters
configThe config for this wrapper

Definition at line 62 of file qgswidgetwrapper.cpp.

◆ setContext()

void QgsWidgetWrapper::setContext ( const QgsAttributeEditorContext context)

Set the context in which this widget is shown.

Parameters
contextcontext information

Definition at line 67 of file qgswidgetwrapper.cpp.

◆ setDataDefinedProperties()

void QgsWidgetWrapper::setDataDefinedProperties ( const QgsPropertyCollection collection)
inline

Sets the editor widget's property collection, used for data defined overrides.

Parameters
collectionproperty collection. Existing properties will be replaced.
See also
dataDefinedProperties()
Property

Definition at line 201 of file qgswidgetwrapper.h.

◆ setEnabled

void QgsWidgetWrapper::setEnabled ( bool  enabled)
virtualslot

Is used to enable or disable the edit functionality of the managed widget.

By default this will not change the enabled state of the widget

Parameters
enabledEnable or Disable?

Reimplemented in QgsValueRelationWidgetWrapper, QgsGeometryWidgetWrapper, QgsBinaryWidgetWrapper, and QgsEditorWidgetWrapper.

Definition at line 112 of file qgswidgetwrapper.cpp.

◆ setFeature

virtual void QgsWidgetWrapper::setFeature ( const QgsFeature feature)
pure virtualslot

Is called when the value of the widget needs to be changed.

Updates the widget representation to reflect the new value.

Parameters
featureThe new feature

Implemented in QgsValueRelationWidgetWrapper.

◆ valid()

virtual bool QgsWidgetWrapper::valid ( ) const
pure virtual

◆ widget() [1/2]

QWidget * QgsWidgetWrapper::widget ( )

Access the widget managed by this wrapper.

Returns
The widget

Definition at line 47 of file qgswidgetwrapper.cpp.

◆ widget() [2/2]

template<class T >
T* QgsWidgetWrapper::widget ( )
inline

Access the widget managed by this wrapper and cast it to a given type.

Example

QPushButton* pb = wrapper->widget<QPushButton*>();

Returns
The widget as template type or nullptr, if it cannot be cast to this type.
Note
not available in Python bindings

Definition at line 119 of file qgswidgetwrapper.h.

Member Data Documentation

◆ mPropertyCollection

QgsPropertyCollection QgsWidgetWrapper::mPropertyCollection
protected

Data defined property collection.

Definition at line 244 of file qgswidgetwrapper.h.


The documentation for this class was generated from the following files: