Utiliser un fichier json pour stocker des presets [Résolu]

Signaler
Messages postés
41
Date d'inscription
vendredi 22 décembre 2017
Statut
Membre
Dernière intervention
16 avril 2020
-
 trifou -
Bonjour,
Je travaille sur un petit projet et j'aimerai rajouter un peu de couleurs pour rendre ça plus agréable. J'ai trouvé la librairie (sty) et j'ai pu ajouter les couleurs que je voulais dans mon programme. Mais maintenant j'aimerai faire des presets, comme ça l'utilisateur pourra modifier les couleurs de l'interface à sa guise et ça sera sauvegarder dans un fichier json.

Le problèlme étant que le package sty utilise des commandes (fg.red pour mettre du texte en rouge par exemple) pour les couleurs... comment faire pour stocker ça dans un fichier json (ou autre) ?

Exemple :
{
"Help_Crochet": {
"couleur_help_crochet": "fg.orange",
"bg_help_crochet": "",
"end_couleur_help_crochet": "fg.rs",
"end_bg_help_crochet": ""
},
"Help": {
"couleur_help": "fg.da_green"
}
}



Et j'aimerai que les valeurs soient transformée en commande.
Merci d'avance

1 réponse

Bonsoir,

En imaginant que fg est connu et est une instance d'une classe, alors cette variable devrait être dans
globals
.

Pour obtenir un attribut d'une classe sous forme de string, il y a la fonction getattr.

Cela reviendrait alors à faire

class Fg:
    orange = "#ffa500"

fg = Fg()

s = "fg.orange"
name, attr = s.split('.')
print(getattr(globals()[name], attr))


Mais si toutes les valeurs de ton json sont des attributs de fg, alors autant ne mettre seulement que l'attribut dans le json ("orange" et plus "fg.orange")

Ainsi, plus besoin de passer par globals, puisqu'on ferait directement
getattr(fg, attr)
.