Pregunta

Tengo una aplicación que estoy escribiendo usando Qt 4.5.2 en Windows. Estoy almacenando algunos ajustes en un archivo INI y el uso de QSettings para cargar y guardar la configuración. Me gustaría tener algunos comentarios en el archivo INI.

Por ejemplo:

; Meta-info to store with the file
[General]
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(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 es re-escrito después de la carga por una llamada a QSettings :: sync () (esto se hace automáticamente por el constructor). ¿Hay una manera de preservar los comentarios después de la sincronización?

comentarios de Preferencia:

  • Quiero archivos INI de Windows para la futura compatibilidad entre plataformas
  • Quiero guardar meta-información en el archivo de referencia fuera de la aplicación
  • Estoy pensando en hacer el meta-información de una sección del INI y el uso de la etiqueta nombre = valor reglas, pero preferiría mantener la información como un comentario
¿Fue útil?

Solución

QSettings no tiene el concepto de "salvar". Todos los cambios que haces a ella se consideran definitivas, y se escriben en el disco a menudo y de forma transparente.

En la documentación de QSettings, no hay ninguna mención acerca de los comentarios en los archivos ini. No tiene sentido: después de todo, puede ser un valor de registro, también. Tratarlo como un archivo generado:. Es uno

Aquí está mi sugerencia:

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

No sé si funciona, jugar con ella para ver cómo realmente almacena la cadena. Ah, y asegúrese de que alguno de los conjuntos desde el código o documento de forma adecuada, para evitar que accidentalmente usando el mismo identificador desde dentro del programa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top