qt - QSettings: ¿dónde está la ubicación del archivo ini?
(6)
Estoy usando QSettings
para almacenar algunos datos como archivo ini en Windows. Quiero ver el archivo ini, pero no sé cuál es la ubicación del archivo ini.
Este es mi código:
QSettings *set = new QSettings(QSettings::IniFormat, QSettings::UserScope, "bbb", "aaa");
set->setValue("size", size());
set->setValue("pos", pos());
¿Dónde debo mirar? ¿O puedo perder el código que lo escribe en el archivo? ¿ QSettings
escribe QSettings
sus valores?
Consulte la clase QStandardPaths
, que enlaza con varias rutas estándar, incluida la configuración en todas las plataformas compatibles. 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);
Hay rutas para archivos de configuración en directorios de configuración compartida, directorios de datos de aplicaciones y más.
Creo que encontrarás todo lo que estás buscando aquí: http://doc.qt.io/archives/qt-4.7/qsettings.html
Es específico de la placa, ver debajo:
Ubicaciones de las notas específicas de la plataforma donde se almacenan las configuraciones de la aplicación
También puede almacenar configuraciones en archivos:
QSettings settings("/home/petra/misc/myapp.ini",
QSettings::IniFormat);
En Mac OSX, encontré el archivo en ~ / Library / Preferences
La clase QSettings proporciona configuraciones persistentes de aplicaciones independientes de la plataforma. Los usuarios normalmente esperan que una aplicación recuerde su configuración (tamaños de ventana y posiciones, opciones, etc.) en todas las sesiones. Esta información a menudo se almacena en el registro del sistema en Windows y en los archivos de preferencias XML en Mac OS X. En los sistemas Unix, en ausencia de un estándar, muchas aplicaciones (incluidas las aplicaciones de KDE) utilizan archivos de texto INI.
Para imprimir la ubicación exacta de su archivo de configuración, use el método método fileName de la clase QSettings.
QSettings settings("folderName", "fileName");
qDebug() << settings.fileName();
La salida de la consola se ve así:
/home/user/.config/folderName/fileName.conf
Si crea un QSettings
sin dar ninguna ruta específica, el archivo ini
se ubicará en la ruta de la aplicación .
QSettings Settings("myapp.ini", QSettings::IniFormat);
Settings.setValue("Test", "data");
//...
qDebug() << QApplication::applicationDirPath();
Tenga cuidado: la ruta de la aplicación puede cambiar: por ejemplo, si está desarrollando su aplicación con Qt Creator, en modo de depuración, la ruta de la aplicación se encuentra en la subcarpeta /debug
.
Si lo está ejecutando en modo de lanzamiento, la ruta de la aplicación se encuentra en la subcarpeta /release
.
Y cuando se implementa su aplicación, de manera predeterminada, la ruta de la aplicación está en la misma carpeta que el ejecutable (al menos para Windows).
QSettings
guarda la ubicación cambia a QSettings.Scope
enum . QSettings
guarda en el alcance Local de manera predeterminada. En Linux, encontré mi configuración local en:
~/.config/CompanyName/ApplicationName.conf