J'écris une application Qt et devra stocker les paramètres pour le programme. Je veux qu'ils soient facilement modifiables par des utilisateurs non-avancés tout en étant assez flexibles pour les utilisateurs avancés (permettant ainsi une édition automatisée facile via d'autres programmes, scripts, etc.). QSettings fournit deux formats, le format natif, qui pour Windows est le registre, et le format INI, qui est natif pour la plupart des autres plates-formes. INI va bien, mais voir @QString (...) ou d'autres trucs de Qt n'est pas vraiment lisible et est sujet aux erreurs.Quels sont les paramètres du format de stockage à choisir?
Le registre n'est pas génial non plus. Il n'a pas été conçu pour être manipulé et donc pas vraiment bon pour l'édition ou l'utilisation avancée; cela résout le problème de la synchronisation entre threads et plusieurs objets QSettings (donc je n'efface pas tout, bien que je puisse simplement utiliser un objet global, protégé par un locker en lecture-écriture). Je regarde XML, mais c'est assez bavard et il faut écrire un format QSettings (pas vraiment un problème) mais très flexible.
Je connais d'autres alternatives à XML mais je ne les connais pas vraiment; Je ne veux certainement pas écrire un analyseur, exception pour mon propre format final, pas pour la base.
Mise à jour - Note: Je ne vais pas contourner QSettings du tout, je vais juste écrire un format pour elle - qui ressemble il est à seulement deux pointeurs de fonction (pour une lecture et une fonction d'écriture) passé à une statique fonction et ensuite je peux utiliser mon format.
Mise à jour 2: Je suis aussi inquiet sur les serveurs Linux, qui n'ont généralement pas une interface graphique .. Je veux que les gens soient en mesure de modifier la configuration facilement à partir du serveur via nano ou quelque chose de similaire, sans utiliser la gestionnaire (oui, j'aurai un serveur démon et un gestionnaire d'interface graphique à distance).
Je vais les regarder et je verrai comment écrire un format QSettings si Je choisis eiher. Il sera important de se déplacer entre les ordinateurs. Un fichier est aussi facile que de copier le fichier. Une clé de registre doit être exportée dans un fichier puis importée. Et regedit pourrait se plaindre si vous lui donnez un fichier .reg créé avec un regedit plus récent. – CMircea