我正在寻找相当于getenv的功能。
Qt有一个围绕getenv()
的包装,称为qgetenv()
。
QByteArray qgetenv ( const char * varName )
getenv()
是一个标准函数,但Visual Studio已弃用它,这就是Qt提供qgetenv()
包装器的原因。
请注意,如果您对获取标准文件系统位置(如主目录,应用程序数据目录等)感兴趣,则应使用QDesktopServices::storageLocation()
(Qt 4)或QStandardPaths::writableLocation()
(Qt 5)。
对于Qt,在访问环境变量时也存在“高级”方法。这只适用于Qt应用程序在QCoreApplication中运行的情况,大多数Qt应用程序都应如此。
在这种情况下,您可以使用QProcessEnvironment,用于至少4.6的Qt版本。您可以使用以下方式访问当前的流程环境
QProcessEnvironment::systemEnvironment();
你可以通过查询任何变量
QProcessEnvironment::systemEnvironment().value("<variablename>", "<defaultvalue>");
在大多数情况下使用getenv / qgetenv方法应该更方便,因为这会以更通用的方式影响操作系统实现,而恕我直言,它也是一种更“类似Qt”的方法。