2016-10-04 2 views
0

나는 우분투에서 몇 가지 백그라운드 프로세스를 실행 QT 프로그램 테스트를 사용하고 있습니다.QT에서 공정 결과를 표시하는 방법은 무엇입니까?

프로세스가 완료된 후 Qprocess 결과 세부 정보를 표시하는 방법을 알고 있습니다. (QbyteArray 사용).

인가가 당신은 비동기 프로세스 출력을 읽을 수있는 프로세스가 백그라운드에서 실행되는 동안 나를 Qprocess의 진행 상황을 표시합니다. (예 : 메시지 상자 또는 임의의 다른 정보 서브 창에.)

+0

'QProcess'는 프로세스 상태에 대한 비동기 신호를 제공합니다. 출력을 읽을 수도 있습니다. –

+0

그렇게하기 위해 예제 코드를 공유 할 수 있습니까? –

+0

모두 문서에 있습니다! http://doc.qt.io/qt-5/qprocess.html –

답변

1

수있는 방법. 이를 위해서는 QProcess::readyReadStandardOutput() 또는 QProcess::readyReadStandardError() 신호를 슬롯에 연결해야합니다. 당신의 슬롯에

QString program = "ping"; 
QStringList arguments; 
arguments << "google.com"; 
myProcess = new QProcess(parent); 
connect(myProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readyR())); 
myProcess->start(program, arguments); 

당신은 프로세스에 의해 writen의 standart 출력에서 ​​데이터를 읽고 당신이 원하는 것을 할 수 있습니다.

void YourClass::readyR() 
{ 
    qDebug()<<myProcess->readAllStandardOutput(); 
} 
관련 문제