Il 03/13/2015 10:50 AM, Matthias Kuhn scrisse:
Create a python plugin that registers a custom widget like the one in
the referenced blog post.

Following your tips I created a plugin that registers a tree widget.
And following the tutorial that you linked I was able to add a parameter to set the layer that the treewidget should use as a model (sort of) for data.

There's only one glitch. I expected that that parameter would be saved when saving the project and loaded when opening it. But that is not the case.

class TreeWidgetWrapperFactory( QgsEditorWidgetFactory ):
...
  def readConfig( self, elem, layer, idx ):
    """ Read a config object from an XML element """
    pdb.set_trace()
                
    config = dict()
    config['MyTreeWidget'] = elem.attribute( 'MyTreeWidget' )
    return config

The readConfig function never runs. I don't understand what could be wrong because I copied and pasted the tutorial code for that class and changed only the name of the parameter where to save the configuration ("MyTreeWidget" instead of "rule".)

All other functions regarding config['MyTreeWidget'] in the wrapperConfig and WrapperFactory classes work as expected.

Inside the qgs file of the project I found 2 "instances" where the parameter is present:

<projectlayers layercount="2">
...
  <expressionfields/>
  <edittypes>
    <edittype widgetv2type="MyQTreeWidget" name="TYPE">
<widgetv2config fieldEditable="1" labelOnTop="0" MyTreeWidget="tags"/>
    </edittype>
  </edittypes>
...
  <attributeactions/>
  <edittypes>
    <edittype widgetv2type="MyQTreeWidget" name="TYPE">
<widgetv2config fieldEditable="1" labelOnTop="0" MyTreeWidget="tags"/>
    </edittype>
  </edittypes>

What am I missing?

Thank you
        maxx

        
_______________________________________________
Qgis-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to