1.初始化 QProcess绑定输出函数
- clipProcess=new QProcess(this);
- clipProcess->setProcessChannelMode(QProcess::MergedChannels);
- connect(clipProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(read_slot()));
- connect(clipProcess,SIGNAL(readyReadStandardError()),this,SLOT(read_error()));
- clipProcess->start("cmd.exe");
- if (!clipProcess->waitForStarted())
- qDebug() << "Make failed:" << clipProcess->errorString();
- else
- {
- qDebug() << "clipProcess: " << clipProcess->readAll();
- }
2.实现信息输出槽函数,
- void Form::read_slot()
- {
- while(clipProcess->canReadLine())
- {
- char output[1024];
- int ret = clipProcess->readLine(output,1023);
- qDebug() << ret;
- qDebug() << output;
- QString tmpstr;
- tmpstr=output;
- qDebug() << tmpstr;
- }
- qDebug() << "read slot";
- }
3.逐行调用 (切记末尾加"\r\n",还有在lineEdit编辑输入例如"dir\r\n"会被识别为"dir\\r\\n"导致无法通过)
- clipProcess->write("cd c:/test/\r\n");
- clipProcess->waitForBytesWritten(1000);
- clipProcess->write("dir\r\n");
- clipProcess->waitForBytesWritten(1000);