#1 Thu 27 December 2018 11:48
- Olivier310
- Juste Inscrit !
- Date d'inscription: 18 Sep 2017
- Messages: 4
QGIS: Pb d'exécution macro LegendInterface
Bonjour à tous,
J'ai récupéré une couche contenant une macro qui fonctionnait très bien sous QGIS 2.8.4 hors depuis que mon entreprise nous à mis à disposition la version 3.0 puis 3.2 une erreur se produit. (voir pièce jointe).
Voici le code :
import os
macouche = qgis.utils.iface.activeLayer()
chemin='[% "PATH" ||'/'||"IMAGE" %]'
nomCouche = str(os.path.splitext(os.path.split(chemin)[1])[0])
qgis.utils.iface.addRasterLayer(chemin,nomCouche)
monraster=qgis.utils.iface.legendInterface().currentLayer()
qgis.utils.iface.legendInterface().setLayerVisible(monraster, True)
qgis.utils.iface.legendInterface().setCurrentLayer(macouche)
Ce n'est pas bloquant j'acquitte juste l'erreur mais je souhaiterai comprendre sachant que je n'ai pas beaucoup d'expérience en programmation python.
D'avance merci pour vos réponses.
Hors ligne
#2 Thu 27 December 2018 17:49
Re: QGIS: Pb d'exécution macro LegendInterface
Bonjour Olivier,
QGIS 3 a été réécrit pour python 3, Qt5 et une bonne partie de l'API QGIS a changée.
Le code python valable pour la version 2 doit être mis à jour, et avec une syntaxe python 3.
Il y a un guide de migration ici
https://github.com/qgis/QGIS/wiki/Plugi … -to-QGIS-3
ainsi qu'une liste des changements dans l'API QGIS:
https://qgis.org/api/api_break.html
Bonne soirée!
Hors ligne