2017-01-06 78 views
0

我需要一個JSON文件來保存一些關於我的應用程序的信息,並且有時會讀取它。而且因爲我的應用程序在Ubuntu和Windows上運行,我把它添加到Qt的資源... 要訪問JSON文件我想:Qt資源 - 添加和讀取JSON文件

QFile file(":/files/files/my_settings.json"); 
qDebug() << "settings file: " << endl << file.readAll(); 

回答

0

首先,你需要調用readAll()之前調用QFile::open()

第二點,你不能在Qt資源中寫入文件。

如果你想要一個跨平臺的方式來保存你的軟件設置等,看看QStandardPaths::writableLocation()QSettings

請注意,QSettings不會處理開箱即用的JSON,但它會處理所有讀/寫文件(如果您設置了QCoreApplication::applicationNameQCoreApplication::organizationName,則爲您的文件格式和位置)。

+0

我使用QCoreApplication :: applicationDirPath()+「/settings.json」來使用json文件 – vitor13almeida

+0

@ vitor13almeida使用'applicationDirPath()'是一個壞主意。在Windows上,您最終會寫入「C:\ Program Files」,這對於標準用戶來說是不可寫的。在Linux發行版中,比如Ubuntu,更糟的是'applicationDirPath()'就像'/ bin'或'/ usr/bin',你只能擁有可執行文件。要爲任何操作系統使用適當的位置'QStandardPaths' –

+0

我的應用程序在USB驅動器和QString settings_file_path = QCoreApplication :: applicationDirPath()+「/files/settings.json」;我可以得到的路徑很好 – vitor13almeida