QT中system函数的使用及类型转换

12 篇文章 2 订阅

system()函数的使用

一、QT中使用脚本语言有以下三种方式(以linux的“ls”为例说明):

(1)QProcess:execute("ls");

(2)system("ls");

(3)QProcess *process = new QProcess();

         process->start("ls");

说明:

1、以上3中方法都可以,但是前两种会阻塞进程,直到ls结束,才会进行后续的操作,而第三种不会阻塞进程,可以多任务运行。

2、当命令中存在管道(|)和重定向(>)时,只能使用第二种,第一种和第三种属于Qt自身的,不能识别这两种符号。

二、把QString转换为char*。

system()的使用过程中,命令语句是由多个变量拼接而成的,由于system()中的参数是char*型的,需要在变量后面使用toLatin1()函数进行转换。

示例如下:

QString command01 ="echo ";

QString command02= QString::number(number,10);

QString command03="> /sys/devices/platform/s3c24xx-pwm.1/pwm-backlight.0/backlight/pwm-backlight.0/brightness"

QString command04 = command01+command02+command03;

system(command04.toLatin1());  //形参类型是char* 实参是QString不匹配所以需要进行类型转换

三、把char*转换为QString。
最为方便的做法是以一个QLatin1String对象作为参数,来调用QString的构造函数
示例:
const char *cstr;
QString qstr= QString(QLatin1String(cstr));

  • 7
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值