Message posté par : ThomasS
----------------------------------------
Bonjour,
Dans le cadre de la création d'un plugin qui s'ajoute dans la boite à outils de
traitement, je cherche à définir comme paramètre une énumération dont les valeurs
dépendent d'une autre énumération d'un pramètre précédant.
Param1 : catégorie
Param2 : Année
les années proposées dépendent de la catégorie chosie.
J'ai demandé a deux reprises a un agrégateur statistique (ChatGPT) mais les réponses
apportées ne fonctionnent pas.
Mon code exemple ressemble à ça suivant ces deux essais précédants :
-----------------
Citation :
class TestAlgorithm(QgsProcessingAlgorithm):
CATEGORY = 'CATEGORY'
ITEM = 'ITEM'
def initAlgorithm(self, config=None):
# Define the first enum parameter: Category
self.addParameter(
QgsProcessingParameterEnum(
self.CATEGORY,
self.tr('Category'),
options=['Fruit', 'Vegetables']
)
)
# Define the second enum parameter: Item, initially empty
self.addParameter(
QgsProcessingParameterEnum(
self.ITEM,
self.tr('Item'),
options=[],
optional=True
)
)
def updateParameters(self, parameters, context):
# Get the selected category
category_index = self.parameterAsEnum(parameters, self.CATEGORY, context)
category = ['Fruit', 'Vegetables'][category_index]
# Update the item parameter based on the selected category
if category == 'Fruit':
parameters[self.ITEM].setOptions(['Apple', 'Banana',
'Orange'])
elif category == 'Vegetables':
parameters[self.ITEM].setOptions(['Carrot', 'Potato',
'Tomato'])
else:
parameters[self.ITEM].setOptions([])
return super().updateParameters(parameters, context)
def processAlgorithm(self, parameters, context, feedback):
.............. suite
-----------------
Mais cette approche ne semble pas fonctionner. Est-ce que quelqu'un possède des pistes
(ou tout du moins connait un plugin processing qui fait ça afin que je puisse examiner le
code) ?.
merci d'avance.
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=369154#p369154
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net