2010-10-27 95 views
23

我使用QSettings在Windows中存儲一些數據作爲ini文件。 我想查看ini文件,但我不知道ini文件的位置。QSettings - ini文件的位置在哪裏?

這是我的代碼:

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

我在哪裏有看?或者我可能會錯過寫入文件的代碼? QSettings何時寫入其值?

回答

8

我想你會發現你正在尋找這裏的一切:http://doc.qt.io/archives/qt-4.7/qsettings.html

它。平臺特定的,看下面:

特定平臺的注意事項 位置在哪裏應用程序設置存儲

你可以將設置存儲在文件中:

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

如果您創建QSettings沒有給出任何特定的路徑,ini文件將位於application path

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

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

不過要小心:應用程序的路徑可能會改變:比如,如果你是深化發展與Qt Creator的您的應用程序,在調試模式下,應用程序路徑是在/debug子文件夾。

如果您在發佈模式下運行它,則應用程序路徑位於/release子文件夾中。

並且,當部署應用程序時,默認情況下,應用程序路徑與可執行文件(至少對於Windows)在同一文件夾中。

+0

我不確定這是否真的起作用,我試過了,但是我找不到應用程序路徑中的設置。 – Kiril 2013-01-10 16:05:25

+0

QApplication:applicationDirPath()通常不可寫,所以不太可能用作在運行時創建的文件的位置。 也許你的意思是應用程序的當前工作目錄? – 2016-09-25 09:21:52

6

QSettings保存位置更改爲QSettings.Scope enumQSettings保存到本地作用域默認情況下。在Linux上,我發現我的本地設置在:

~/.config/CompanyName/ApplicationName.conf

+0

是的!這是我想知道的 - QSettings設置; - 沒有任何路徑。就像這裏:http://stackoverflow.com/a/3598245/1338797 – 2016-03-16 22:52:11

26

要打印出QSettings類的設置文件的使用方法文件名的方法的準確位置。

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

控制檯輸出看起來那麼像:

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

基本路徑(沒有文件名)也可以通過'QStandardPaths :: writableLocation()'使用'QStandardPaths :: ConfigLocation'作爲類型來獲取 – 2016-09-25 09:23:38

0

在Mac OSX上,我發現文件下在〜/庫/首選項

的QSettings類提供持久的獨立平臺應用設置。 用戶通常期望應用程序在會話中記住其設置(窗口大小和位置,選項等)。此信息通常存儲在Windows的系統註冊表中以及Mac OS X上的XML首選項文件中。在Unix系統中,在沒有標準的,許多應用程序(包括KDE應用程序)使用INI的文本文件

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

0

退房的QStandardPaths類,它鏈接到多個標準路徑,包括對所有配置支持的平臺。 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); 

存在用於在共享目錄中的配置,應用數據的目錄,並且更配置文件的路徑。

相關問題