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
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top