首页 > 解决方案 > 如何在 Qt5 中使用 Windows 环境变量

问题描述

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

此代码目前有效

soundURL = QUrl::fromUserInput(soundFilename,
                                       QStringLiteral("C:/Windows/media"),
                                       QUrl::AssumeLocalFile);

我试过下面的代码,不起作用

soundURL = QUrl::fromUserInput(soundFilename,
                                       QStringLiteral((%%WINDIR%%)+"/media"),
                                       QUrl::AssumeLocalFile);

如何使用 %WINDIR% 使路径更简单、更通用?

标签: c++qtenvironment-variablesqt5

解决方案


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

由于您似乎以 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
}

推荐阅读