我正在一个项目中,我想从C:/Windows/media
访问声音文件,但为了使其更通用,我想使用用户系统中的一些环境变量。
此代码目前有效
soundURL = QUrl::fromUserInput(soundFilename,
QStringLiteral("C:/Windows/media"),
QUrl::AssumeLocalFile);
我试过下面的代码,不起作用
soundURL = QUrl::fromUserInput(soundFilename,
QStringLiteral((%%WINDIR%%)+"/media"),
QUrl::AssumeLocalFile);
如何使用%WINDIR%使路径更简单和更通用?
最佳答案
Qt5公开了几个函数来检索存储在环境变量qgetenv和qEnvironmentVariable中的值。
正如您似乎以Windows为目标,更安全的方法是使用QString qEnvironmentVariable(const char *varName)
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
}