[Qgis-developer] QgsAttributeDialog() working example

Alexandre Neto senhor.neto at gmail.com
Thu Oct 2 09:26:58 PDT 2014


Hello,

even calling startEditing() programmatically, I don't seem to be able to
open the Form in editable mode.

Any help with this will be appreciated

Thanks,

Alexandre Neto

On Thu, Oct 2, 2014 at 6:33 AM, Andrew McClure <andrew at southweb.co.nz>
wrote:

> I found this thread very helpful.  It seems to be that to the dialog into
> edit mode this has to be done programmatically by calling startEditing() -
> not by simply having the layer in edit mode.   Can anyone else verify that?
>   Regardless, thanks for the pointers and suggestions in the thread. Much
> appreciated.
>
> On 30/09/2014, at 8:12 pm, Alexandre Neto <senhor.neto at gmail.com> wrote:
>
> Hi
>
> On Tue, Sep 30, 2014 at 6:42 AM, Denis Rouzaud <denis.rouzaud at gmail.com>
> wrote:
>
>>
>>
>> If you want to open a feature form like doing it from QGIS, just run:
>>
>> iface.openFeatureForm(layer, feature, false, true/false)
>>
>>
>> http://qgis.org/api/classQgisInterface.html#a11b90f38afd09ac5e9f363933ee4a509
>>
>> Cheers,
>>
>> Denis
>>
>>
> Actually this how my plugin worked back in QGIS 2.2. But in the latest
> versions the iface.openFeatureForm() is always in add mode (like
> setIsAddDialog
> <http://qgis.org/api/classQgsAttributeDialog.html#a2fbbff1c23be058caa26cc5aaf7040e8>).
> That is, after accepting the dialog, it adds a new feature, and does not
> update my temporary feature. This leaves no room for any changes before the
> feature commit. I described my problem in the following bug report, and
> Matthias Kuhn adviced me to create my own Dialog, so that's what I'm trying
> to do. I would be glad to use iface.openFeatureForm() only
>
> https://hub.qgis.org/issues/11099
>
> Thanks for your help
>
> Alexandre
>
>
>
>
>
>
>
>>
>>
>> On 29.09.2014 18:19, Alexandre Neto wrote:
>>
>> Hello Salvatore,
>>
>>  You were right, I just needed to import the class first, this have
>> opened the form for me:
>>
>>  from qgis.gui import QgsAttributeDialog
>>> mc = iface.mapCanvas()
>>> layer = mc.currentLayer()
>>> temp_feature.setAttributes(attributes)
>>> dialog = QgsAttributeDialog(layer, temp_feature, True)
>>> dialog.show()
>>
>>
>>  But now I can't make it editable.
>>
>>  All I can do is cancel the dialog.
>>
>>  Thanks for your help,
>>
>>  Alexandre Neto
>>
>>
>>
>> On Mon, Sep 29, 2014 at 4:21 PM, Salvatore Larosa <lrssvtml at gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> On Mon, Sep 29, 2014 at 4:56 PM, Alexandre Neto <senhor.neto at gmail.com>
>>> wrote:
>>> > Hello,
>>> >
>>> > I'm trying to open an attribute dialog for a temporary feature using
>>> > QgsAttributeDialog(). but with no luck. Can anyone point me to working
>>> > example?
>>> > I'm trying something like this:
>>> >
>>> >>
>>> >> mc = iface.mapCanvas()
>>> >> layer = mc.currentLayer()
>>> >> dialog = QgsAttributeDialog(layer, temp_feature)
>>> >> dialog.show()
>>>
>>> I think you should to import the class before and setting the feature
>>> owner bool parameter.
>>> after this changes the snippet should work fine for you!
>>>
>>> Regards,
>>> -SL
>>>
>>> --
>>> Salvatore Larosa
>>> linkedIn: http://linkedin.com/in/larosasalvatore
>>> twitter: @lrssvt
>>> skype: s.larosa
>>> IRC: lrssvt on freenode
>>>
>>
>>
>>
>> _______________________________________________
>> Qgis-developer mailing listQgis-developer at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>>
>>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20141002/bde006a2/attachment.html>


More information about the Qgis-developer mailing list