Rap*_*ael 3 c++ qt cross-platform
我正在编写一个需要将一些设置保存到用户配置目录的Qt应用程序.
我想出了以下代码来获取此文件夹:
#ifdef Q_WS_WIN
path = QDir::homePath() + "/Application Data/Timely";
#else
path = QDir::homePath() + "/.config/Timely";
#endif
Run Code Online (Sandbox Code Playgroud)
这在Windows 7上失败,因为Windows 7使用App Data/Roaming/[YourApp].如何以跨平台方式获取用户的配置文件夹?我错过了一些明显的东西吗?(这应该是一项简单的任务)
是的,这应该是一项简单的任务 - 但你不应该硬编码路径.您应该在win/mac上使用本机API,在大多数较新的unix上使用环境变量.当然,Qt可以帮助您实现跨平台.
按照Tibur的建议,如果它是Qt应用程序的配置数据,请使用QSettings.您还可以使用适当的QT api获取config目录.
QT4: QT5:QDesktopServices::storageLocation(QDesktopServices::DataLocation)
QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation)