2009-11-11 6 views
6

J'ai une application que j'écris en utilisant Qt 4.5.2 sous Windows. Je stocke certains paramètres dans un fichier INI et utilise QSettings pour charger et enregistrer les paramètres. J'aimerais avoir quelques commentaires dans le fichier INI.Qt: QParamètres sous Windows avec fichiers INI et commentaires

Par exemple:

; Meta-info to store with the file 
[General] 
MainWindow\[email protected](1280 600) 
MainWindow\[email protected](0 300) 
Debugging=true 

Cependant, j'ai trouvé quand je charge le fichier de paramètres avec

QSettings settings("settings.ini", QSettings::IniFormat); 

les commentaires sont supprimés du fichier. Le fichier INI est réécrit après le chargement par un appel à QSettings :: sync() (ceci est fait automatiquement par le constructeur). Est-il possible de conserver les commentaires après la synchronisation?

commentaires Préemption:

  • Je veux des fichiers INI dans Windows pour une future compatibilité multi-plateforme
  • Je veux stocker les méta-informations dans le fichier de référence en dehors de l'application
  • Je considérais faire la méta-info une section de l'INI et en utilisant le nom = valeur règles, mais préfèrent garder l'information comme un commentaire

Répondre

4

QSettings n'a pas de concept de "sauvegarder". Toutes les modifications que vous y apportez sont considérées comme définitives et écrites sur le disque de manière fréquente et transparente.

Dans la documentation de QSettings, il n'y a aucune mention concernant les commentaires dans les fichiers ini. Cela a du sens: après tout, il peut s'agir d'une valeur de registre. Traitez-le comme un fichier généré: c'est un.

Voilà ma suggestion:

[General] 
Comment = @String(Meta-info to store with the file) 
MainWindow\[email protected](1280 600) 
MainWindow\[email protected](0 300) 
Debugging=true 

Je ne sais pas si cela fonctionne, jouer avec elle pour voir comment il stocke en fait la chaîne. Oh, et assurez-vous soit de le définir à partir du code ou le documenter correctement, pour éviter d'utiliser accidentellement le même identifiant à partir du programme.

+0

Ligne de clé: "Traitez-le comme un fichier généré: c'est un." Je pense que cela dit tout. Si je veux faire des trucs non-Qt avec le fichier, ce n'est pas vraiment un fichier de paramètres Qt. – dwj