[Qgis-developer] QgsAttributeDialog() working example

Alexandre Neto senhor.neto at gmail.com
Tue Sep 30 00:12:27 PDT 2014


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
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20140930/63646d16/attachment-0001.html>


More information about the Qgis-developer mailing list