2013-09-08 6 views
-3

나는이 코드를 가지고 있지만 working.i 내 비디오 converting.video 변환이 괜찮 동안 진행 막대를 업데이트하려고하지만는 QProgressbar

void MainWindow::on_pushButton_clicked() 
{ 
QString alienpath="ffmpeg"; 
QStringList argument; 

argument<<"-i"<<ui->lineEdit->text()<<"/home/suraj/a.flv"; 
QProcess *alien=new QProcess(this); 
alien->start(alienpath,argument); 
int p; 
p=alien->readAll().toInt(); 
ui->progressBar->setMaximum(0); 
ui->progressBar->setMinimum(100); 
ui->progressBar->setValue(p); 
} 

PLZ

답변

0
도움이 progessbar 업데이트되지 아닙니다으로 QProcess 연결
  • 먼저 진행률 표시 줄이 코드에서 구성된 후에는 업데이트되지 않는 것 같습니다. MainWindow 또는 C++ 11 람다의 일부 슬롯에 연결하는 QTimer 또는 readyRead/readyReadStandardOutput 신호를 사용하고 싶지만 출력이 매번 포함될 것인지 잘 모르므로 작동 여부를 알 수 없습니다.
  • 두 번째로 toInt()이 실패 할 가능성이 높습니다. 출력에 67과 같은 순수한 숫자가 포함 된 경우에만 작동합니다. 응용 프로그램은 일반적으로 많은 양의 출력을 생성합니다. 숫자를 추출하고 변환하려면 QRegExp 또는 QRegularExpression (Qt5)을 사용하십시오. toInt()은 변환 오류가 발생했는지 확인하는 것을 지원합니다. 문서를 참조하십시오.