Qt Ping

QProcess对象可以直接执行cmd的命令,但是ping操作是会阻塞的,所以需要在子线程里ping

QProcess *tempCmd = new QProcess();

tempCmd->start(orderInfo);

tempCmd->waitForFinished(1000);//阻塞等待执行命令完成,否则返回的很可能是空字符串

QString resultInfo = QString::fromLocal8Bit(tempCmd->readAllStandardOutput());//resultStr就是返回结果,需要fromLocal8Bit来接收中文

 

 

ps:上面使用的是Qprocess::start,还可以使用QPocess::startDetached,

区别:https://blog.csdn.net/u014597198/article/details/52624975

1)一体式:void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)

        外部程序启动后,将随主程序的退出而退出。
2)分离式:void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0)
        外部程序启动后,当主程序退出时并不退出,而是继续运行。

posted @ 2017-06-23 11:28  朱小勇  阅读(2154)  评论(0编辑  收藏  举报