web-dev-qa-db-fra.com

QSettings - où est l'emplacement du fichier ini?

J'utilise QSettings pour stocker des données sous forme de fichier ini dans Windows ..__ Je veux voir le fichier ini, mais je ne sais pas quel est l'emplacement du fichier ini.

Ceci est mon code:

QSettings *set = new QSettings(QSettings::IniFormat, QSettings::UserScope, "bbb", "aaa");
set->setValue("size", size());
set->setValue("pos", pos());

Où dois-je regarder? Ou peut-être me manque-t-il le code qui l'écrit dans le fichier? Quand la QSettings écrit-elle ses valeurs?

26
dubila

Pour imprimer l'emplacement exact de votre fichier de paramètres, utilisez la méthode méthode fileName de la classe QSettings.

QSettings settings("folderName", "fileName");
qDebug() << settings.fileName();

La sortie de la console ressemble alors à:

/home/user/.config/folderName/fileName.conf
33
lucab0ni

Je pense que vous trouverez tout ce que vous cherchez ici: http://doc.qt.io/archives/qt-4.7/qsettings.html

C'est spécifique à la plateforme, voir ci-dessous:

Remarques spécifiques à la plate-forme Emplacements où les paramètres d'application sont stockés

Vous pouvez également stocker les paramètres dans des fichiers:

QSettings settings("/home/petra/misc/myapp.ini",
                QSettings::IniFormat);
10
Andy M

QSettings enregistrer les modifications d’emplacement dans QSettings.Scope enum . QSettings enregistrer dans l'étendue locale par défaut. Sous Linux, j'ai trouvé mes paramètres locaux dans:

~/.config/CompanyName/ApplicationName.conf

7
Jordan

Découvrez la classe QStandardPaths, elle est reliée à plusieurs chemins standard, y compris la configuration sur toutes les plateformes prises en charge. https://doc.qt.io/qt-5/qstandardpaths.html

QT> = 5.5:

QString path = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);

QT <5.5:

QString path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);

Il existe des chemins pour les fichiers de configuration dans les répertoires de configuration partagés, les répertoires de données d'application, etc.

2
NuclearPeon

Si vous créez une QSettings sans indiquer de chemin spécifique, le fichier ini sera situé dans le chemin application .

QSettings Settings("myapp.ini", QSettings::IniFormat);
Settings.setValue("Test", "data");

//...
qDebug() << QApplication::applicationDirPath();

Attention, le chemin de l'application peut changer: par exemple, si vous développez votre application avec Qt Creator, en mode débogage, le chemin de l'application se trouve dans le sous-dossier /debug.

Si vous l'exécutez en mode de publication, le chemin de l'application se trouve dans le sous-dossier /release.

Et lorsque votre application est déployée, par défaut, le chemin de l'application se trouve dans le même dossier que l'exécutable (au moins pour Windows).

2
Jérôme

Sur Mac OSX, j'ai trouvé le fichier sous ~/Library/Preferences

La classe QSettings fournit des paramètres d'application persistants, indépendants de la plate-forme . Les utilisateurs attendent normalement d’une application qu’elle mémorise ses paramètres (taille et positions des fenêtres, options, etc.) d’une session à l’autre. Ces informations sont souvent stockées dans le registre système sous Windows et dans des fichiers de préférences XML sous Mac OS X. Sur les systèmes Unix, en l'absence de norme, de nombreuses applications (y compris les applications KDE) utilisent des fichiers texte INI

http://doc.qt.io/archives/qt-4.7/qsettings.html

0
rsc