Qt 操作系统环境变量

1, QProcess
QProcess 提供静态函数 QStringList QProcess::systemEnvironment () [static], 返回环境变量键值对的列表。

QStringList QProcess::environment () const
和 setEnvironment ( const QStringList & environment )
QProcess process;

QStringList env = QProcess::systemEnvironment(); env <<
“TMPDIR=C:\MyApp\temp”; // Add an environment variable
env.replaceInStrings(QRegExp(“^PATH=(.*)”, Qt::CaseInsensitive),
“PATH=\1;C:\Bin”); process.setEnvironment(env);
process.start(“myapp”);

上述两个函数Qt已弃用 , 用下面的QProcessEnvironment替代,效率更高
QProcessEnvironment QProcess::processEnvironment () const
void QProcess::setProcessEnvironment ( const QProcessEnvironment & environment )

QProcess process; QProcessEnvironment env =
QProcessEnvironment::systemEnvironment(); env.insert(“TMPDIR”,
“C:\MyApp\temp”); // Add an environment variable env.insert(“PATH”,
env.value(“Path”) + “;C:\Bin”); process.setProcessEnvironment(env);
process.start(“myapp”);

注意:windows下,环境变量是大小写不敏感的

2, QProcessEnvironment类
QProcessEnvironment可以
添加insert ( const QString & name, const QString & value )和
移除remove ( const QString & name )环境变量值,
判断某个环境变量是否存在contains ( const QString & name ) const,
返回系统环境变量列表QStringList QProcessEnvironment::toStringList () const,
取得某个变量的值,QString QProcessEnvironment::value ( const QString & name, const QString & defaultValue = QString() ) const。
判断环境变量是否为空 isEmpty() ,和清空环境变量 clear()
使用相当方便.

应用举例:比如想获得Qt安装目录下的demos的某个pro文件
可以这样,

QProcessEnvironment envirenment =
QProcessEnvironment::systemEnvironment();

QString qtDir = envirenment.value(“QTDIR”);

QString dir = QFileDialog::getOpenFileName(this, “打开项目”, qtDir +
“/demos”, tr(“pro file(*.pro)”));

QString dirName = dir.left(dir.lastIndexOf(“/”));

QString flieName = dir.split(“/”).last();

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值