我正在寻找getenv函数的等价物。
问问题
22551 次
2 回答
20
Qt 有一个包装器getenv()
,称为qgetenv()
.
QByteArray qgetenv ( const char * varName )
getenv()
是一个标准函数,但 Visual Studio 已弃用它,这就是 Qt 提供qgetenv()
包装器的原因。
请注意,如果您对获取标准文件系统位置(如主目录、应用程序数据目录等)感兴趣,则应该使用QDesktopServices::storageLocation()
(Qt 4) 或QStandardPaths::writableLocation()
(Qt 5)。
于 2013-01-07T16:57:40.550 回答
11
对于 Qt,在访问环境变量时也有一种“高级”的方法。这只有在您的 Qt 应用程序在 QCoreApplication 中运行时才有效,大多数 Qt 应用程序都应该是这种情况。
在这种情况下,对于至少 4.6 的 Qt 版本,您可以使用QProcessEnvironment 。您可以通过使用访问当前进程环境
QProcessEnvironment::systemEnvironment();
你可以通过查询任何变量
QProcessEnvironment::systemEnvironment().value("<variablename>", "<defaultvalue>");
这应该比在大多数情况下使用 getenv/qgetenv 方法更方便,因为这会以更通用的方式隐藏操作系统实现,恕我直言,它也是一种更“类似 Qt”的方法。
于 2016-05-04T06:52:31.233 回答