Pages: 1
- Sujet précédent - QGIS 3.34: Formulaire --> Action --> Externalisation du code python - Sujet suivant
#1 Mon 27 October 2025 10:57
- pyjoubert
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Mar 2006
- Messages: 386
QGIS 3.34: Formulaire --> Action --> Externalisation du code python
Bonjour
Dans un formulaire d'attributs, j'ai placé une action de type Python.
Pour le moment, le code est entièrement décrit dans la zone qui va bien
Il fonctionne correctement.
Maintenant, afin d'être réutilisé dans d'autres formulaire, je voudrais l'externaliser dans un fichier GL_Fonctions.py placé au même niveau que le projet
Pour cela, je pensais mettre mon code dans ce fichier .py et ne faire qu'un appel dans le formulaire
Voici un extrait de mon fichier GL_Fonctions.py
Code:
# -*- coding: utf-8 -*- mport shutil import os import ctypes from qgis.utils import iface from PyQt5.QtWidgets import QFileDialog from qgis.core import QgsProject,QgsExpressionContextUtils def DRY_CreerFiche(): layer_id = '[%@layer_id%]' print(layer_id) fid = [%$id%] print(fid)
Et voici le code inclu dans l'action de l'ongler Action de la couche de données
Code:
import GL_Fonctions GL_Fonctions.DRY_CreerFiche()
Depuis ce changement, le code est bien éxécuté, mais j'ai des erreurs au niveau des lignes
layer_id = '[%@layer_id%]' où il renvoie None au lieu de l'id du layer courant
fid = [%$id%] où j'ai une erreur de syntaxe pour [%$id%]
Si vous avez une idée ?
Peut-être que pour un code extenalisé il faut importer d'autres choses ?
Je sèche
Merci de votre aide et bonne journée
PYJ
Dernière modification par pyjoubert (Tue 28 October 2025 07:50)
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.34: Formulaire --> Action --> Externalisation du code python - Sujet suivant


