C++ 如何在Qt5中使用Windows环境变量

C++ 如何在Qt5中使用Windows环境变量,c++,qt,environment-variables,qt5,C++,Qt,Environment Variables,Qt5,我正在做一个项目,我想从C:/Windows/media访问一个声音文件,但为了让它更通用,我想使用用户系统中的一些环境变量 这段代码目前有效 soundURL = QUrl::fromUserInput(soundFilename, QStringLiteral("C:/Windows/media"), QUrl::AssumeLocalF

我正在做一个项目,我想从
C:/Windows/media
访问一个声音文件,但为了让它更通用,我想使用用户系统中的一些环境变量

这段代码目前有效

soundURL = QUrl::fromUserInput(soundFilename,
                                       QStringLiteral("C:/Windows/media"),
                                       QUrl::AssumeLocalFile);
我试过下面的代码,不起作用

soundURL = QUrl::fromUserInput(soundFilename,
                                       QStringLiteral((%%WINDIR%%)+"/media"),
                                       QUrl::AssumeLocalFile);
如何使用%WINDIR%使路径更简单、更通用

string path(getenv("WINDIR"));
将%WINDIR%放入std::字符串中。我希望您可以对Qt类型执行同样的操作


您最好使用Qt标准路径。弄乱%WINDIR%有点危险。

Qt5公开了几个函数来检索存储在环境变量中的值,即and

由于您似乎以Windows为目标,因此更安全的方法是使用
QString QenEnvironmentVariable(const char*varName)

<代码>(%%Wdidi%%) >不是有效的C++表达式
QString winDirPath = qEnvironmentVariable("WINDIR");

if (!winDirPath.isNull()) {
    // the environment variable WINDIR exists and has been retrieved
} else {
    // the environment variable does not exists in this system
}