Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#1 Mon 19 May 2014 09:54
- SchlosserA
- Juste Inscrit !
- Date d'inscription: 19 May 2014
- Messages: 9
QGIS 2.0 : Développement de plugin en python
Bonjour à la communauté !
Je suis actuellement en master géomatique à l'université de Strasbourg et j'effectue un stage de fin d'année qui me demande de développer un plugin en python pour QGis capable, sans trop rentrer dans les détails, de charger des données raster, d'accéder aux valeurs qu'elles contiennent et de produire d'autres rasters combinant ces données. J'ai bien eu des cours de programmation python en cours d'années mais mes compétences ne concernent pour l'instant que des bases de traitement d'image... Le développement que j'ai à faire m'apparaît donc un peu obscur.
Je suis vite tombé sur le plugin builder de QGis qui m'a posé les bases de la structure d'un plugin et je me suis tourné vers le développement d'une interface PyQt à l'aide de Glade, qui une fois traduite m'a donné un certain nombre de fichiers .py pour chaque fenêtre que mon plugin doit contenir (pour charger les données et rentrer les différents paramètres). En bricolant un petit peu, j'ai pu charger l'interface à partir de QGis, la première fenêtre s'affiche, c'est génial, mais... à partir de là, les ennuis commencent.
Mon niveau en python se limitant à des traitements d'images basiques comme je les dis, je maîtrise assez peu la partie "programmation évènementielle" et, même après avoir consulté un certains nombres de cours sur développez.net et openclassrooms (anciennement site du zéro), le concept de signaux/slots que python utilise pour lier les fonctions aux différents widgets de mon interface me semble assez complexe. Le principal problème est que je n'arrive pas à naviguer dans l'interface (il faudrait détruire certaines fenêtres, en afficher d'autres avec des boutons du style suivant/précédant). Mon plugin reste donc bloqué sur la première fenêtre avec des boutons non fonctionnels.
J'ai essayé en parallèle de développer un script console pour contourner momentanément ce problème, mais là se pose le problème du chargement et de l'accès aux données en python... J'ai bien trouvé le "Python Cookbook" http://www.qgis.org/fr/docs/pyqgis_deve … index.html qui liste certaines des fonctions disponibles avec PyQgis mais les explications données sont assez sommaires.
Donc voilà, m'étant déjà tourné vers les superviseurs de mon stage qui malheureusement ne connaissent pas beaucoup plus python que moi et ayant essayé, sans succès, d'obtenir de l'aide auprès des enseignants en informatique auquel j'avais accès, je me tourne vers vous en espérant qu'un âme charitable pourra prendre un peu de son temps pour m'expliquer comment naviguer dans une interface et faire des traitements sur des rasters...
Bonne journée et merci d'avance à ceux qui répondront
Arnaud
Hors ligne
#2 Mon 19 May 2014 16:30
- Cornet Jérémie
- Participant assidu
- Lieu: Nouméa
- Date d'inscription: 6 Apr 2008
- Messages: 229
Re: QGIS 2.0 : Développement de plugin en python
Bonjour,
La doc en lien montre un exemple d'ajout de fichier raster :
Code:
fileName = "/path/to/raster/file.tif" fileInfo = QFileInfo(fileName) baseName = fileInfo.baseName() rlayer = QgsRasterLayer(fileName, baseName)
Commencer par un script console est une très bonne idée.
A votre place, j'utiliserai la boîte à outil (processing) directement dans le script python, si possible des outils GRASS.
http://www.qgis.org/fr/docs/user_manual … nsole.html
NB : quand on lance un outil de la boîte à outil (processing), on peut observer dans le fichier de log (C:\Users\USER\.qgis2\processing\processing.log) la commande python correspondante.
NB2 :
une fois que votre script tourne dans la console, il sera bien assez temps de vous préoccuper de l'interface utilisateur :
- un plugin QGis : voir les tutos et le plugin Qgis "plugin builder" très pratique pour créer l'ossature.
- un script à incorporer dans la boîte à outil
==> http://www.qgis.org/fr/docs/user_manual … he-toolbox
Dernière modification par Cornet Jérémie (Mon 19 May 2014 16:34)
Hors ligne
#3 Tue 20 May 2014 09:20
- SchlosserA
- Juste Inscrit !
- Date d'inscription: 19 May 2014
- Messages: 9
Re: QGIS 2.0 : Développement de plugin en python
Bonjour et merci d'avoir pris le temps de me répondre !
Je vais laisser l'interface de côté comme conseillé pour essayer de faire fonctionner le tout en mode console dans ce cas, la boîte à outils semble effectivement être une piste intéressante pour le traitement de mes couches, je vais m'intéresser de près à tout ça.
Merci pour votre aide !
Arnaud
Hors ligne
#4 Tue 20 May 2014 18:19
- Titius
- Participant actif
- Date d'inscription: 27 Aug 2013
- Messages: 69
Re: QGIS 2.0 : Développement de plugin en python
Bonjour,
Étant moi même en train de tenter de faire un plugin, voici le tuto sur lequel je me suis appuyé (en anglais) :
http://www.qgisworkshop.org/html/workshop/index.html
Ça aide aussi beaucoup de fouiller dans le code des autres plugins pour comprendre comment tout s'organise.
Pour vos problème de fenêtres, peut être pourriez vous contourner le problème en faisant une seule fenêtre avec plusieurs onglets.
Hors ligne
#5 Tue 20 May 2014 19:14
Re: QGIS 2.0 : Développement de plugin en python
Anita graser est ton amie
http://anitagraser.com/2014/04/26/getti … x-plugins/
Hors ligne
#6 Wed 21 May 2014 09:19
- SchlosserA
- Juste Inscrit !
- Date d'inscription: 19 May 2014
- Messages: 9
Re: QGIS 2.0 : Développement de plugin en python
Bonjour et merci à Titius et Robin pour vos liens. Je vais aussi explorer l'idée des onglets.
J'espère qu'avec ça je pourrais mener à bien mon projet, en tous cas merci beaucoup pour votre aide !
Arnaud
Hors ligne