2012-10-17 33 views
0

我有一個Qt應用程序,需要能夠從幾個設置文件加載才能以不同的方式運行。例如可以說我的應用程序可以支持多種變體,VAR1,VAR2,VAR3,...我的一個菜單條目允許我加載設置。目前,我使用QSettings對象執行此操作,並且它工作正常。但是現在我想實現一個不同的變體。我想從預配置的設置文件中加載,而不是手動設置20個或更多設置。我該如何使用QSettings加載不同的設置

QSettings不允許我更改源,據我所知。我查看了靜態方法QSettings :: setPath,但只能在實例化QSettings對象之前完成一次。

我希望創建的方式: 1 - 加載出廠 - 保存設置與用戶指定的名稱 3文件中的用戶 - 回顧名的用戶設置文件。

如果可能的話,我寧願不必重寫QSettings來滿足我的需求。

回答

0

您是否試圖像訪問INI文件一樣訪問QSettings?它允許你設置的INI文件

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

問題是一旦你加載設置,沒有簡單的方法來隨後加載不同的設置文件。 – pklemm

+0

爲什麼不呢?就像在Dave Mateer的回答中一樣。 – 2012-10-17 18:25:28

4

其中QSettings構造函數的一個文件名的位置:

QSettings::QSettings (const QString& fileName, 
         Format format, 
         QObject *parent = 0); 

只是用它來使盡可能多的QSettings情況下,你需要:

QSettings s1("path1.ini", QSettings::IniFormat); 
QSettings s2("path2.ini", QSettings::IniFormat); 

如果您需要在它們之間進行復制,您可以查看QSettings::allKeys()並獲取值。

相關問題