如何从 C++ 代码中获取项目名称?

How to get project name from C++ code?

我想写信给 <CacheDir>/myProjectName,其中 <CacheDir> 是以下值:

QStandardPaths::writableLocation(QStandardPaths::CacheLocation)

但我不想用 C++ 硬编码我的项目名称,因为那样会创建 2 个要更新的地方。有没有办法以编程方式获取它?

处理应用程序名称的标准 Qt 方式是 QCoreApplication::applicationName() - 当然你必须在某处设置它(通常在你创建应用程序的 main() 函数中)。

完成后,应用程序名称实际上用作应用程序特定 QStandardPath 的一部分 - 例如CacheLocation 的文档说对于 windows,CacheLocation 是 C:/Users/<USER>/AppData/Local/<APPNAME>/cache,这意味着应用程序名称已经在路径中。

因此,对于您的示例,您可以像这样为您的应用创建一个独特的路径:

auto myCacheFile = QString("%1/cache.txt")
             .arg(QStandardPaths::writableLocation(QStandardPaths::CacheLocation));