2017-01-06 47 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