NFS サーバーから PC にファイルをダウンロードするアプリケーションを開発しています。私のタスクを達成するために、指定されたパスにあるすべてのディレクトリをコピーし、QProcess を使用してスクリプトを実行するシェル スクリプトを作成しました。QProcess は正常に動作し、すべてのディレクトリをダウンロードします。
ここで、ダウンロード プロセス レポートを QProgressBar に表示したいと思います。(インターネットからファイルをダウンロードしているときにウィンドウに表示されるのと同じです)。
私はグーグル検索を試し、シグナルを使っていくつかのアイデアを見つけ、次のように試しました:
void NfsClient::NfsDownload()
{
download = new QProcess(this);
connect(download, SIGNAL(readyReadStandardOutput()), this, SLOT(displayProgressBar()) );
download->execute("bash /home/samurai/NfsFileDownload.sh");
}
void NfsClient::displayProgressBar()
{
ui->progressbar->setvalue(download->readAll().toInt());
}
しかし、この readyReadStandardOutput() シグナルは発行されません。スクリプトの実行中に Qt ウィンドウがフリーズします。プログレスバーは変更されません。:(
それに応じて QProgressbar を更新する方法はありますか??? または、ダウンロードプロセスの GUI ビューを表示するアイデアはありますか???
提案/アイデア???