郑州市汉狮做网站,免费的写作网站,WordPress 跳转 xampp,wordpress 询价按钮前言 因为之前写了一个接收和发送文件的脚本#xff0c;然后又需要获取进度#xff0c;同步到进度条中。 效果#xff1a; 使用正则匹配#xff0c;获取命令行命令中的以下数据#xff0c;然后同步到进度条 源码demo#xff1a; 
非完整代码#xff1a; 
#include Q…前言 因为之前写了一个接收和发送文件的脚本然后又需要获取进度同步到进度条中。 效果 使用正则匹配获取命令行命令中的以下数据然后同步到进度条 源码demo 
非完整代码 
#include QRegularExpression
#include QProcessbool transferFile(const QString localFilePath, const QString remoteFilePath, const QString host, const QString username, const QString password)
{ui-sendProgressBar-setValue(0);QRegularExpression re((\\d{1,3})%); // 匹配1到3位数字后面跟着一个百分号QProcess process;QString  appPath;if(sendFileShPath.endsWith(/)){appPath  sendFileShPath  send_file;}else{appPath  sendFileShPath  /send_file;}QString  cmd  QString(%6 %1 %2 %3 %4 %5).arg(username).arg(host).arg(password).arg(localFilePath).arg(remoteFilePath).arg(appPath);process.start(cmd);qDebug()QString(%1  send to  %2).arg(localFilePath).arg(remoteFilePath);// 当有标准输出可读时读取并输出内容QObject::connect(process, QProcess::readyRead, []() {while (!process.atEnd()) {QByteArray ba  process.readLine();QString s  QString::fromUtf8(ba).trimmed();QRegularExpressionMatch match  re.match(s);if(match.captured(1) ! ){int curNum  match.captured(1).toInt();qDebug()  curNum %;ui-sendProgressBar-setValue(curNum);}}});if (!process.waitForStarted()) {qDebug()  Failed to start process.;return false;}process.waitForFinished();return true;
} 
以上代码中的cmd可以自行替换