Qt: QSettings su Windows con i file INI e commenti
Domanda
Ho un'applicazione che sto scrivendo con Qt 4.5.2 su Windows. Sto memorizzare alcune impostazioni in un file INI e l'utilizzo di QSettings per caricare e salvare le impostazioni. Mi piacerebbe avere alcuni commenti nel file INI.
Ad esempio:
; Meta-info to store with the file
[General]
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true
Tuttavia, ho trovato quando carico il file di impostazioni con
QSettings settings( "settings.ini", QSettings::IniFormat );
i commenti vengono eliminati del file. Il file INI viene riscritto dopo il caricamento da una chiamata a QSettings :: sync () (questo viene fatto automaticamente dal costruttore). C'è un modo per preservare i commenti dopo la sincronizzazione?
commenti Preemptive:
- Voglio file INI di Windows per la futura compatibilità cross-platform
- Voglio conservare meta-informazioni nel file di riferimento al di fuori dell'applicazione
- sto considerando rendendo la meta-informazioni una sezione della INI e utilizzando il nome = valore regole, ma preferirei mantenere le informazioni come un commento
Soluzione
QSettings
non ha il concetto di "salvare". Tutte le modifiche che si fanno ad esso è considerato finale, e scritti su disco spesso e in modo trasparente.
Nella documentazione di QSettings
, non v'è alcuna menzione circa i commenti nei file ini. Non fa un certo senso: dopo tutto, può essere un valore del Registro, anche. Trattarlo come un file generato:. È uno
Ecco il mio consiglio:
[General]
Comment = @String(Meta-info to store with the file)
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true
Non so se funziona, giocare con essa per vedere come in realtà memorizza la stringa. Oh, e assicurarsi che si sia imposta dal codice o il documento in modo corretto, per evitare accidentalmente utilizzando lo stesso identificatore all'interno del programma.