Qt: QSettings no Windows com arquivos INI e comentários
Pergunta
Eu tenho um aplicativo que estou escrevendo usando Qt 4.5.2 no Windows. Eu estou armazenando algumas configurações em um arquivo INI e usando QSettings para carregar e salvar as configurações. Eu gostaria de ter alguns comentários no arquivo INI.
Por exemplo:
; Meta-info to store with the file
[General]
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true
No entanto, eu encontrei quando eu carregar o arquivo de configurações com
QSettings settings( "settings.ini", QSettings::IniFormat );
os comentários são retirados do arquivo. O arquivo INI é re-escrito após o carregamento por uma chamada para QSettings :: sync () (isso é feito automaticamente pelo construtor). Existe uma maneira de preservar os comentários após a sincronização?
comentários de Preferência:
- Eu quero arquivos INI no Windows para compatibilidade futura cross-platform
- Eu quero armazenar meta-info no arquivo para fora de referência do aplicativo
- Estou pensando em fazer a meta-info uma seção do INI e usando o name = valor regras, mas prefere manter a informação como um comentário
Solução
QSettings
não tem noção de "save". Todas as mudanças que você faz para ele é considerado final, e gravados no disco, muitas vezes e de forma transparente.
Na documentação de QSettings
, não há nenhuma menção sobre os comentários em arquivos ini. Ele faz algum sentido: afinal, ele pode ser um valor de registo, também. Tratá-lo como um arquivo gerado:. É um
Aqui está a minha sugestão:
[General]
Comment = @String(Meta-info to store with the file)
MainWindow\size=@Size(1280 600)
MainWindow\pos=@Point(0 300)
Debugging=true
Eu não sei se funciona, brincar com ele para ver como ele realmente armazena o string. Oh, e certifique-se que você quer configurá-lo a partir do código ou documento-lo corretamente, para evitar que acidentalmente usando o mesmo identificador de dentro do programa.