• # Pas une réponse à ta question

    Posté par (site web personnel) . En réponse au message Comment ajoutée une icon a chaque entrée com. Évalué à 6. Dernière modification le 29 avril 2019 à 19:59.

    Mais plusieurs points:

    • Avec une question de cet ordre, précise dans le sujet l'API graphique que tu utilises (là il ne me semble reconnaître ni wxWindow, ni Tkinter, ni Qt... peut-être est-ce du GTK) — pas impossible que le moinssage actuel soit lié à ça.
    • Essaie de corriger les fautes les plus courantes (accord du participe passé) — installe le plugin grammalecte sous Firefox pour aider à corriger.
    • Quand une expression (ici les appels à fileExists(...)) produit un booléen, plutôt que de tester == True ou == False dans une condition if, utilises plutôt if fileExists(...): ou if not fileExists(...):.
    • Plutôt que de placer le chemin d'accès à ton installation /usr/lib/enigma2/python/Plugins/Extensions en dur partout dans les expressions, au minimum utilise une constante, et plus tard tu pourras utiliser une variable modifiable quelque part (environnement, option ligne de commande, préférences) sans avoir à modifier le source.
    • Pour joindre ensuite les chemins, utilise les fonctions dans le module os.path ou bien le récent module pathlib.
    • Ta chaîne d'erreur est toujours la même, avec juste le nom du plugin qui change... utilise une chaîne modèle et la méthode format1.
    • Pour l'import des plugins, une façon de faire est de tenter l'import et d'intercepter l'exception si le module n'est pas importable2.
    • En creusant un peu dans la doc Python, tu devrais pouvoir utiliser le module importlib et te créer une fonction de chargement de plugin, ton code sera grandement simplifié avec cette factorisation.

    Et, désolé, pas de réponse sur les icônes.

    1 Utilisation modèle + format

    MSGERR = "Plugin {} non installé...\n Voulez Vous L'installer?"
    self.session.open(MessageBox, MSGERR.format("Quran"))

    2 Import et récupération en cas d'échec

    if ...:
     try:
     from Plugins.Extensions.Rassembl2Plugin.Quran.plugin import *
     self.session.open(StreamTVList)
     except ImportError:
     self.session.open(MessageBox, MSGERR.format("Quran"))

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN