c++ - 如何在 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% 使路径更简单、更通用?
解决方案
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
}
推荐阅读
- python - Django 2 在我的模板页面中结合 ListView 和 DetailView
- macos - 绕过/禁用 macOS 安全措施以实现 SFSpeechRecognizer 项目的高效开发周期
- node.js - 角度错误:无法解构“未定义”或“空”的属性“createHash”
- swift - 在 swift 中使用 Alamofire 多部分将图像上传到服务器
- windows - Get-ChildItem 何时或为何产生与过滤器不匹配的文件?
- python-3.x - 从列表列表的每一行中选择 n 个随机元素
- stripe-payments - 将 CVC 传递给 stripe.createPaymentMethod JS?
- html - 第一行的 CSS 样式剪辑文本,不显示 VueJS 应用程序上的所有内容
- javascript - 如何链接音频文件和自动播放
- amazon-web-services - 如何将无服务器 lambda 函数连接到自定义域