2015-04-07 1 views
0

je l'ai déjà créé un fichier QSettings dans mon code, mais une nouvelle fonction besoin d'ajouter un nouveau groupe dans mon dossier QSettings, donc je toujours utiliser le code:comment ajouter un groupe dans un fichier QSettings de existez

settings = QSettings() 
settings.beginGroup("showItem") 
settings.setValue("show", True) 
settings.endGroup() 

mais le notant a à voir avec mon ancien fichier QSettings! Donc, quelqu'un sait comment ajouter un nouveau groupe dans le fichier QSettings?

+0

Avez-vous oublié de définir le fichier? – svlasov

+0

Vous savez que selon le système d'exploitation que vous utilisez, le fichier QSetting est écrit à la fin de l'exécution du programme? –

+0

Qu'est-ce que "True"? Est-ce une faute de frappe? –

Répondre

0

J'utilise setValue dans la fonction où je ferme l'application, puis restaure la valeur lors de sa prochaine exécution. Par exemple,

void MyApp::closeEvent(QCloseEvent* e) 
{ 
    (void)(e); // UNUSED PARAMETER 

    QSettings settings("MpApp", abc); 
    settings.setValue("show", x); // Where x is a bool datatype 
} 

utilisant ce code lors de l'initialisation pour restaurer la valeur:

QSettings settings("MyApp", abc); 
bool x = settings.value("show").toBool(); 

Hope that helps!

+0

Il y a une macro 'Q_UNUSED' dans Qt. Et vous avez suggéré une solution de contournement, mais pas une réponse. –

+0

merci, ça marche! – seme

0

Si aucune boucle d'événement n'est en cours d'exécution, vous pouvez appeler directement QSettings::sync pour forcer l'application des modifications.