2009-11-11 18 views
6

Tengo una aplicación que estoy escribiendo con Qt 4.5.2 en Windows. Estoy almacenando algunas configuraciones en un archivo INI y usando QSettings para cargar y guardar la configuración. Me gustaría tener algunos comentarios en el archivo INI.Qt: QConfiguración en Windows con archivos INI y comentarios

Por ejemplo:

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

Sin embargo, he encontrado que cuando cargo el archivo de configuración con

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

los comentarios son despojados fuera del archivo. El archivo INI se vuelve a escribir después de la carga mediante una llamada al QSettings :: sync() (esto lo hace automáticamente el constructor). ¿Hay alguna manera de conservar los comentarios después de la sincronización?

comentarios de Preferencia:

  • quiero archivos INI en Windows para la futura compatibilidad multiplataforma
  • Quiero guardar meta-información en el archivo de referencia fuera de la aplicación
  • Estoy considerando haciendo que la meta-información de una sección del INI y el uso de los nombre = valor reglas pero preferiría mantener la información como un comentario

Respuesta

4

QSettings no tiene ningún concepto de "guardar". Todos los cambios que haga se considerarán definitivos y se escribirán en el disco de forma frecuente y transparente.

En la documentación de QSettings, no se menciona los comentarios en archivos ini. Tiene sentido: después de todo, también puede ser un valor de registro. Trátelo como un archivo generado: es uno.

aquí está mi sugerencia:

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

No sé si funciona, jugar con ella para ver cómo realmente almacena la cadena. Ah, y asegúrese de configurarlo desde el código o documentarlo correctamente, para evitar accidentalmente el uso del mismo identificador dentro del programa.

+0

Línea clave: "Trátelo como un archivo generado: es uno". Creo que eso lo dice todo. Si quiero hacer cosas que no sean de Qt con el archivo, entonces no es realmente un archivo de configuración de Qt. – dwj

Cuestiones relacionadas