我正在开发一个应用程序来将文件从 NFS 服务器下载到我的电脑。为了完成我的任务,我编写了一个 Shell 脚本来复制给定路径的所有目录并使用 QProcess 执行脚本。QProcess 工作正常并下载所有目录。
现在,我想在 QProgressBar 上显示下载过程报告。(与我们在从 Internet 下载文件时在 Windows 上看到的相同)。
我尝试了谷歌搜索并使用信号找到了一些想法并尝试如下:
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 视图???
任何建议/想法???