Pregunta

Estoy escribiendo una aplicación Qt y necesitaré para almacenar los ajustes para el programa. Yo quiero que sean fácilmente editable por los usuarios no avanzados sin embargo, ser lo suficientemente flexible como para usuarios avanzados (por lo tanto permitir la edición automatizado fácil a través de otros programas, scripts, lo que sea). QSettings proporciona dos formatos, el formato nativo, lo que para Windows es el registro, y el formato INI, que es nativa para la mayoría de otras plataformas. INI está muy bien, pero al ver @QString (...) u otras cosas en Qt no es muy fácil de leer y es poco propenso a errores.

El registro no es grande tampoco. No fue diseñado para ser metido con y por lo tanto no es precisamente bueno para la edición o el uso avanzado; lo hace resolver el problema de la sincronización a través de hilos y varios objetos QSettings (por lo que no se limpie todo lo que fuera, a pesar de que sólo puede utilizar un objeto global, protegido por un armario de lectura-escritura). Estoy buscando en XML, pero es bastante darned detallado y sí 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; Desde luego, no quiero escribir un programa de análisis, a excepción de mi propio formato final, no para la cosa base.

Actualizar - 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 para una función de escritura) pasa a una función estática y entonces puedo usar mi formato.

Actualización 2: También estoy preocupado por los servidores Linux, que por lo general no tienen una interfaz gráfica de usuario .. Quiero que la gente sea capaz de editar la configuración fácilmente desde el servidor a través de nano o algo similar , sin necesidad de utilizar el gestor (sí, voy a tener un servidor de demonio y un gestor de interfaz gráfica de usuario remoto).

¿Fue útil?

Solución

Si por cualquier razón se termina sin pasar por QSettings y teniendo en cuenta XML para el archivo de configuración, le sugiero que vaya vistazo a JSON o YAST, dependiendo de cómo te gusta el libs disponible.

Como nota al margen, si no la intención de tener cantidad de usuarios editar el archivo manualmente, simplemente elegir lo que es más fácil para usted (QSettings?) Y seguir adelante con su vida, ya que la elección del formato no importará una sola bit (Har Har).

Otros consejos

Puede utilizar la clase QSettings para lograrlo. Es una clase de abstracción que permiten que las aplicaciones puedan almacenar sus ajustes con el fin de recuperarlos en el próximo lanzamiento.

Guardar configuración:

QSettings settings("ValueName",  "Value");

Leer configuración:

QString v = settings.value("ValueName");

Me gustaría empezar con la realización de las QSettings a través de archivos ini, y ver si se termina con muchos problemas con él. Si no hay problemas, entonces no hay necesidad de ir a dar una solución XML. Si lo hace llegar a querer la solución XML, usted podría (como se mencionó) añadir un formateador para los objetos QSettings.

Otra forma de verlo es la verbosidad robustez contenido. Si por alguna razón (una partícula alfa bombardeando el disco, causando un solo bit para voltear), todavía se puede ir allí y hacer la corrección de errores necesario ... así que hay un beneficio, sino también los costos asociados con ella ... con una archivo binario, significa un solo bit de error de los datos se pierde por completo

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