Utiliser un fichier json pour stocker des presets

Résolu/Fermé
Leer0r Messages postés 41 Date d'inscription vendredi 22 décembre 2017 Statut Membre Dernière intervention 16 avril 2020 - Modifié le 23 janv. 2020 à 19:00
 trifou - 23 janv. 2020 à 19:40
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
A voir également:

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)
.
1