Pages: 1
- Sujet précédent - QGIS: fournir des scripts python d expressions avec le projet - Sujet suivant
#1 Mon 15 June 2020 13:56
- DivideErr0r
- Juste Inscrit !
- Date d'inscription: 15 Jun 2020
- Messages: 2
QGIS: fournir des scripts python d expressions avec le projet
Bonjour à tous.
J'ai un fichier qgis dont certaines étiquettes ont besoin d'être moulinées par un script python d'expression. (en effet le champ "expression" ne fournit qu'un interpréteur très simplifié de python, et ne me permet pas de faire exactement ce que je veux, je dois passer par un script externe)
Dans le calculateur d'expression, j'utilise l'onglet "éditeur de fonction", et je tape le code qui se retrouve enregistré dans un fichier *.py que l'on peut retrouver dans le répertoire suivant :
C:UsersndevaureAppDataRoamingQGISQGIS3profilesdefaultpythonexpressions
ou
%APPDATA%QGISQGIS3profilesdefaultpythonexpressions
ceci marche très bien.
Pour que cela fonctionne sur un autre poste, il faut alors copier le script *.py dans le bon répertoire.
Je voulais savoir s'il y avait une technique pour intégrer directement le ou les scripts sans avoir à préparer manuellement l'application qgis avec la copie de ces scripts d'expression dans les répertoires.
Comment faire pour que le client puisse avoir les bonnes étiquettes, sans qu'il ait à copier ces scripts au préalable.
Merci par avance si vous avez des pistes d'exploration.
Hors ligne
#2 Mon 15 June 2020 16:05
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: fournir des scripts python d expressions avec le projet
Bonjour,
si vous définissez vos propres fonctions pour qu'elles soient disponibles dans la calculette d'expression par le biais d'un fichier python, il semble délicat de s'en affranchir.
Soit vous créez un plugin pour faciliter l'installation de ses fonctions (vous pouvez voir le plugin reffunctions)
soit vous créez une macro associée au projet qui chargera les fonctions par le biais de la fonction register_function
Au vu du sujet de votre message, vous semblez vous orienter vers le 2e choix mais est-ce que vous avez vraiment besoin de créer vos propres questions ?
Cordialement,
Hors ligne
#3 Wed 17 June 2020 11:03
- DivideErr0r
- Juste Inscrit !
- Date d'inscription: 15 Jun 2020
- Messages: 2
Re: QGIS: fournir des scripts python d expressions avec le projet
JD, merci beaucoup !!
Merci pour la suggestion d'utiliser register_function
Cette solution marche très bien, voici comment j'ai fait :
dans Projet/Propriétés/Macros j'ai ajouté :
Code:
@qgsfunction( args='auto', group='Your group', usesGeometry=False, referencedColumns=[], helpText='Define the help string here') def get_prises_pbo(feature, parent): (....code de la fonction....)
puis :
Code:
def openProject(): from qgis.core import QgsExpression QgsExpression.registerFunction(get_prises_pbo)
Maintenant, je peux utiliser la fonction get_prises_pbo dans la valeur de l'etiquette de la geometrie
Merci encore pour votre aide !
Hors ligne
Pages: 1
- Sujet précédent - QGIS: fournir des scripts python d expressions avec le projet - Sujet suivant