2010-10-27 30 views
23

Sto usando QSettings per memorizzare alcuni dati come file ini in Windows. Voglio vedere il file ini, ma non so qual è il percorso del file ini.QSettings - dove si trova il file ini?

Questo è il mio codice:

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

Dove devo guardare? O forse mi manca il codice che lo scrive nel file? Quando lo QSettings scrive i suoi valori?

risposta

8

penso che troverete tutto quello che state cercando qui: http://doc.qt.io/archives/qt-4.7/qsettings.html

E 'plateform specifico, vedere sotto:

Note specifici delle piattaforme luoghi in cui Impostazioni applicazione sono memorizzati

È può memorizzare le impostazioni anche nei file:

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

Se si crea un QSettings senza fornire alcun percorso specifico, il file ini si troverà nello application path.

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

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

Attenzione però: il percorso di applicazione potrebbe cambiare: per esempio, se si sta sviluppando la tua app con Qt Creator, in modalità debug, il percorso di applicazione si trova nella sottocartella /debug.

Se lo si sta eseguendo in modalità di rilascio, il percorso dell'applicazione si trova nella sottocartella /release.

E quando l'applicazione viene distribuita, per impostazione predefinita, il percorso dell'applicazione si trova nella stessa cartella dell'eseguibile (almeno per Windows).

+0

Non sono sicuro che funzioni davvero, l'ho provato ma non sono riuscito a trovare le impostazioni nel percorso dell'applicazione. – Kiril

+0

QApplicazione: applicationDirPath() di solito non è scrivibile, quindi molto improbabile da utilizzare come percorso per il file creato in fase di runtime. Forse intendevi la directory di lavoro corrente dell'applicazione? –

6

QSettings salvare le modifiche alla posizione su QSettings.Scope enum. QSettings salva per l'ambito locale per impostazione predefinita. Su Linux, ho trovato le mie impostazioni locali:

~/.config/CompanyName/ApplicationName.conf

+0

Sì! Questo è quello che volevo sapere - "Impostazioni QSettings" - senza percorsi. Mi piace è stato qui: http://stackoverflow.com/a/3598245/1338797 –

26

Per stampare la posizione esatta del file di impostazioni di metodo di utilizzo il metodo nome del file di classe QSettings.

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

uscita della console si presenta quindi come:

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

Il percorso di base (senza il nome del file) può anche essere recuperato tramite 'QStandardPaths :: writableLocation()' utilizzando 'QStandardPaths :: ConfigLocation' come tipo –

0

Su Mac OSX, ho trovato il file con in ~/Library/Preferences

La classe QSettings fornisce persistente applicazione indipendente dalla piattaforma impostazioni. Gli utenti normalmente si aspettano che un'applicazione ricordi le sue impostazioni (dimensioni e posizioni delle finestre, opzioni, ecc.) Tra le sessioni. Queste informazioni sono spesso memorizzate nel registro di sistema su Windows e nei file delle preferenze XML su Mac OS X.Sui sistemi Unix, in assenza di uno standard, molte applicazioni (tra cui le applicazioni KDE) utilizzano file di testo INI

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

0

Partenza classe QStandardPaths, si collega a più percorsi standard, tra cui la configurazione su tutti piattaforme supportate. 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); 

Non ci sono percorsi per i file di configurazione in directory condivise di configurazione, directory dati delle applicazioni e altro ancora.