[Qgis-developer] quick noob python question

Germán Carrillo carrillo.german at gmail.com
Fri Dec 16 12:46:55 EST 2011


Hi Duarte,

well, now I understand better your first question. Sorry for the confusion.

Regarding the 1 million dollars, I think I'll let anyone else to get them
(which means: I don't know the answer :) ).

Regards,

Germán

2011/12/16 Duarte Carreira <DCarreira at edia.pt>

> Hi Germán.****
>
> ** **
>
> Your tips are exactly what I was looking for!****
>
> ** **
>
> So I can now open a dialog:****
>
> ** **
>
> iface=qgis.utils.iface****
>
> menu=iface.layerMenu()****
>
> myActions=menu.actions()****
>
> myAction=[ac for ac in myActions if
> ac.objectName()=="mActionEmbedLayers"][0]****
>
> myAction.trigger()****
>
> ** **
>
> So now for the final 1 million dollar question: can I change the first
> textbox in the dialog?****
>
> ** **
>
> Thanks,****
>
> Duarte****
>
> ** **
>
> *De:* Germán Carrillo [mailto:carrillo.german at gmail.com]
> *Enviada:* quinta-feira, 15 de Dezembro de 2011 13:26
> *Para:* Duarte Carreira; qgis-developer at lists.osgeo.org
>
> *Assunto:* Re: [Qgis-developer] quick noob python question****
>
> ** **
>
> Hi Duarte,
>
> if I understood well, you would like to simulate a click in QGIS buttons.
> For this you can use the slot trigger() of the available QAction's in the
> class QgisInteface [1]. For example, if you want to open the "Open
> Project..." dialog you can type this in the Python Console (inside QGIS):*
> ***
>
> iface=qgis.utils.iface****
>
> iface.actionOpenProject().trigger()****
>
>
> Regarding Toolbars, you can also access them from the QgisInterface class.
> For example, to access the Layer menu do this:
>
> iface=qgis.utils.iface****
>
> m=iface.layerMenu()****
>
> ** **
>
> Since a menu consists of a set of actions you could trigger any action of
> the menu: ****
>
> ** **
>
> iface=qgis.utils.iface****
>
> for a in m.actions():****
>
> print a.text()****
>
> m.actions()[2].trigger()****
>
>
> Hope this helps.
>
> Regards,
>
> Germán
>
> -------------------------
> [1] http://www.qgis.org/api/classQgisInterface.html ****
>
> 2011/12/15 Duarte Carreira <DCarreira at edia.pt>****
>
> Just an additional question: generally speaking the gui is not accessible
> from python? We cannot simulate a toolbar button click, or menu item?****
>
>  ****
>
> Duarte****
>
>  ****
>
> *De:* Duarte Carreira [mailto:DCarreira at edia.pt]
> *Enviada:* quarta-feira, 14 de Dezembro de 2011 17:05
> *Para:* Germán Carrillo; qgis-developer at lists.osgeo.org
> *Assunto:* RE: [Qgis-developer] quick noob python question****
>
>  ****
>
> Germán, thanks.****
>
>  ****
>
> Maybe that’s what I’ll do, but it pains me to duplicate code…****
>
>  ****
>
> Duarte****
>
>  ****
>
> *De:* Germán Carrillo [mailto:carrillo.german at gmail.com]
> *Enviada:* quarta-feira, 14 de Dezembro de 2011 12:30
> *Para:* qgis-developer at lists.osgeo.org; Duarte Carreira
> *Assunto:* Re: [Qgis-developer] quick noob python question****
>
>  ****
>
> Hi Duarte,
>
> from my experience it is not possible. You can of course re-use the ui
> file and implement the whole functionality on your own based on the cpp
> file, basically a translation from C++ to Python. I've done this before and
> it is not a complex process, but it requires time.
>
> By the way, the folder app of QGIS source code contains
> QGIS-application-specific code, so I would say you won't find there
> functionality available in PyQGIS, for that you would have to have a look
> to the gui and core folders.
>
> Perhaps there are other ways to set the project file programmatically from
> Python, but I don't know them, sorry.
>
> Regards,
>
> Germán****
>
> 2011/12/14 Duarte Carreira <DCarreira at edia.pt>****
>
> Using python is it possible to call QgsEmbedLayerDialog and set the
> project file programmatically (mProjectFileLineEdit)?****
>
>  ****
>
>
> https://github.com/qgis/Quantum-GIS/blob/release-1_8/src/app/qgsembedlayerdialog.cpp
> ****
>
>
> https://github.com/qgis/Quantum-GIS/blob/release-1_8/src/ui/qgsembedlayerdialogbase.ui
> ****
>
>  ****
>
> Thanks,
> Duarte Carreira****
>
>  ****
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer****
>
> --
> -----------
>   |\__
> (:>__)(
>   |/
>
> Soluciones Geoinformáticas Libres
> http://geotux.tuxfamily.org/****
>
>
>
>
> --
> -----------
>   |\__
> (:>__)(
>   |/
>
> Soluciones Geoinformáticas Libres
> http://geotux.tuxfamily.org/****
>



-- 
-----------
  |\__
(:>__)(
  |/

Soluciones Geoinformáticas Libres
http://geotux.tuxfamily.org/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/qgis-developer/attachments/20111216/2f35b427/attachment.html


More information about the Qgis-developer mailing list