0
点赞
收藏
分享

微信扫一扫

QProcess的使用流程(从启动到关闭)

水沐由之 2022-03-26 阅读 19
qtlinux

程序实现功能:
打开一个记事本,在记事本程序运行期间不断的捕捉键盘输入,直到输入数字2,关闭记事本
心得:
(1)start函数调用后程序状态是starting
(2)要调用waitForStarted后程序状态才会显示running
(3)关闭程序要使用close,不要使用kill,使用kill会报“QProcess::start: Process is already running”

QProcess prc;
    QString str="kwrite";
    QStringList para;
    para.append("/users/ems/.cshrc");
    qDebug()<<QProcess::NotRunning<<"NotRunning";
    qDebug()<<QProcess::Starting<<"Starting";
    qDebug()<<QProcess::Running<<"Running";
    qDebug()<<"state b4 start"<<prc.state();
    prc.start(str,para);
    qDebug()<<"state after started"<<prc.state();
    if(!prc.waitForStarted())
    {
        qDebug()<<"fail to start";
        return 0;
    }

    qDebug()<<"state after wait function called"<<prc.state();
    while(prc.state()==QProcess::Running)
    {
        qDebug()<<"";
        sleep(1);
        int a;
        qDebug()<<"input a digit:"<<endl;
        std::cin>> a;
        if(a==2)
        {
            prc.close();
            qDebug()<<"doc killed";
            qDebug()<<"state"<<prc.state();
            break;
        }
        else
        {
            qDebug()<<"a="<<a<<endl;
            qDebug()<<"state"<<prc.state();
        }
    }
    qDebug()<<"state"<<prc.state();

程序运行结果如下:
在这里插入图片描述

举报

相关推荐

0 条评论