2010-10-27 16 views
23

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.QSettings: ¿dónde está 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 tengo que mirar? ¿O puedo perder el código que lo escribe en el archivo? ¿Cuándo escribe el QSettings sus valores?

Respuesta

8

Creo que encontrará todo lo que está buscando aquí: http://doc.qt.io/archives/qt-4.7/qsettings.html

Es Plateform específico, consulte en:

Notas específicas de la plataforma lugares donde Configuración de la aplicación se almacenan

Usted también puede almacenar la Configuración en los archivos:

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

Si crea un QSettings sin dar ninguna ruta específica, el archivo ini se ubicará en el application path.

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

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

Tenga cuidado sin embargo: la ruta de aplicación podría 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 despliega la aplicación, de forma predeterminada, la ruta de la aplicación se encuentra en la misma carpeta que el archivo ejecutable (al menos para Windows).

+0

No estoy seguro de que esto realmente funcione, lo he intentado pero no pude encontrar la configuración en la ruta de la aplicación. – Kiril

+0

QAplicación: applicationDirPath() generalmente no se puede escribir, por lo que es poco probable que se use como la ubicación para el archivo creado en tiempo de ejecución. ¿Quizás quiso decir el directorio de trabajo actual de la aplicación? –

6

QSettings guardando la ubicación cambia al QSettings.Scope enum. QSettings guardar en el alcance local de forma predeterminada. En Linux, encontré mis ajustes locales en:

~/.config/CompanyName/ApplicationName.conf

+0

¡Sí! Esto es lo que quería saber: 'QSettings settings;' - sin ninguna ruta. Me gusta estaba aquí: http://stackoverflow.com/a/3598245/1338797 –

26

Para imprimir la ubicación exacta de su archivo de configuración del método de nomArchivo método de uso de la clase QSettings.

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

salida de la consola se ve entonces como:

/home/user/.config/folderName/fileName.conf 
+3

La ruta de acceso base (sin el nombre de archivo) también se puede recuperar a través de 'QStandardPaths :: writableLocation()' usando 'QStandardPaths :: ConfigLocation' como el tipo –

0

En Mac OS X, he encontrado el archivo bajo a ~/Library/Preferences

La clase QSettings proporciona una aplicación independiente de la plataforma persistente configuraciones. 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 archivos de preferencias XML en Mac OS X.En los sistemas Unix, en ausencia de una norma, muchas aplicaciones (incluyendo las aplicaciones de KDE) utilizan archivos de texto INI

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

0

Mira la clase QStandardPaths, que vincula a varias rutas de acceso estándar, incluyendo la configuración de todo 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 caminos para los ficheros de configuración en los directorios compartidos de configuración, directorios de datos de aplicaciones, y mucho más.

Cuestiones relacionadas