forked from webgeodatavore/pyqgis-samples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqgis-sample-QgsEditorWidgetRegistry.py
45 lines (38 loc) · 1.41 KB
/
qgis-sample-QgsEditorWidgetRegistry.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# coding: utf-8
from qgis.gui import QgsEditorWidgetRegistry
from qgis.utils import iface
editor_widget_registry_instance = QgsEditorWidgetRegistry.instance()
# List available widgets in Text edition in tab Fields of a vector layer
print editor_widget_registry_instance.factories() # Return a list of QgsEditorWidgetFactory
print editor_widget_registry_instance.factories().keys()
# Get QgsEditorWidgetFactory
print editor_widget_registry_instance.factory(u'Range')
print editor_widget_registry_instance.factory(u'RelationReference')
layer = iface.activeLayer()
editFormConfig = layer.editFormConfig() # QgsEditFormConfig
idx = layer.dataProvider().fieldNameIndex('ADM0_A3')
widgetType = editFormConfig.widgetType(idx)
widgetConfig = editFormConfig.widgetConfig(idx)
wrapper = QgsEditorWidgetRegistry.instance().create(
widgetType, layer, idx, widgetConfig, None, None) # QgsEditorWidgetWrapper
widget = wrapper.widget()
"""
Classes below inherit from QgsEditorWidgetFactory and are the one really used.
They are casted
QgsCheckboxWidgetFactory
QgsClassificationWidgetWrapperFactory
QgsColorWidgetFactory
QgsDateTimeEditFactory
QgsEnumerationWidgetFactory
QgsFileNameWidgetFactory
QgsHiddenWidgetFactory
QgsPhotoWidgetFactory
QgsRangeWidgetFactory
QgsRelationReferenceFactory
QgsTextEditWidgetFactory
QgsUniqueValueWidgetFactory
QgsUuidWidgetFactory
QgsValueMapWidgetFactory
QgsValueRelationWidgetFactory
QgsWebViewWidgetFactory
"""