Escribo una aplicación Qt y necesito guardar la configuración para el programa. Quiero que sean fácilmente editables para usuarios no avanzados, pero sean lo suficientemente flexibles para los usuarios avanzados (lo que permite una fácil edición automatizada a través de otros programas, scripts, lo que sea). QSettings proporciona dos formatos, el formato nativo, que para Windows es el registro, y el formato INI, que es nativo para la mayoría de las otras plataformas. INI está bien, pero ver @QString (...) u otras cosas Qt allí no es realmente legible y es un poco propenso a errores.¿Qué configuración de formato de almacenamiento elegir?
El registro tampoco es bueno. No fue diseñado para ser alterado y, por lo tanto, no es exactamente bueno para la edición o el uso avanzado; resuelve el problema de la sincronización entre subprocesos y múltiples objetos QSettings (por lo que no elimino todo, aunque solo puedo usar un objeto global, protegido por un casillero de lectura y escritura). Estoy viendo XML, pero es bastante detallado y requiere escribir un formato QSettings (no es realmente un problema) pero muy flexible.
Sé que otras alternativas a XML existir pero no estoy muy familiarizado con ellos; Ciertamente no quiero escribir un analizador, excepción para mi propio formato final, no para la base.
Actualización - Nota: no voy a QSettings derivación en absoluto, que se acaba de escribir un formato para ella - que parece que está a sólo dos punteros de función (para una lectura y una función de escritura) pasa a un estático función y luego puedo usar mi formato.
Actualización 2: También me preocupan los servidores Linux, que generalmente no tienen una GUI ... Quiero que las personas puedan editar la configuración fácilmente desde el servidor a través de nano o algo similar, sin usar el administrador (sí, tendré un servidor daemon y un administrador remoto de GUI).
Los miraré y veré cómo escribir un formato QSettings si Yo elijo eiher. Importa cuando se mueve a través de las computadoras. Un archivo es tan fácil como copiar el archivo. Una clave de registro debe exportarse a un archivo y luego importarse. Y regedit podría quejarse si le das un archivo .reg creado con un regedit más nuevo. – CMircea