Sto scrivendo un'applicazione Qt e sarà necessario memorizzare le impostazioni per il programma. Voglio che siano facilmente modificabili da utenti non avanzati, ma che siano sufficientemente flessibili per gli utenti avanzati (consentendo quindi un facile editing automatico tramite altri programmi, script o altro). QSettings fornisce due formati, il formato nativo, che per Windows è il registro e il formato INI, che è nativo per la maggior parte delle altre piattaforme. INI va bene, ma vedere @QString (...) o altre cose di Qt lì non è veramente leggibile ed è abbastanza incline agli errori.Quale formato di archiviazione delle impostazioni scegliere?
Il registro non è eccezionale. Non è stato progettato per essere incasinato e quindi non esattamente adatto per l'editing o l'utilizzo avanzato; risolve il problema della sincronizzazione tra thread e più oggetti QSettings (quindi non cancellare tutto, anche se posso semplicemente usare un oggetto globale, protetto da un locker di lettura-scrittura). Sto guardando XML, ma è piuttosto prolisso e richiede la scrittura di un formato QSettings (non proprio un problema) ma molto flessibile.
Conosco altre alternative all'XML ma non mi è molto familiare; Certamente non voglio scrivere un parser, eccezione per il mio formato finale, non per la cosa di base.
Aggiornamento - Nota: io non QSettings by-pass a tutti, mi limiterò a scrivere un formato per esso - che sembra che è a soli due puntatori a funzione (per una lettura e per una funzione di scrittura) passato a una statica funzione e quindi posso usare il mio formato.
Aggiornamento 2: Sono anche preoccupato per i server Linux, che di solito non hanno una GUI. Voglio che le persone siano in grado di modificare facilmente la configurazione dal server tramite nano o qualcosa di simile, senza utilizzare il manager (sì, avrò un server daemon e un gestore GUI remoto).
Le guarderò e vedrò come scrivere un formato QSettings se Io scelgo eiher. Importante quando si passa da un computer all'altro. Un file è facile come copiare il file. È necessario esportare una chiave di registro in un file, quindi importarla. E regedit potrebbe lamentarsi se gli dai un file .reg creato con un nuovo regedit. – CMircea