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
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top