QT开发中文网

qt发送文件,已发送字节与全部字节计算百分比,保留两位小数点

在Qt中,你可以通过简单的数学计算来实现已发送字节与总字节之间的百分比计算,并保留两位小数点。以下是一个示例代码,展示如何进行这个计算:

#include <QCoreApplication>
#include <QFile>
#include <QDebug>

double calculatePercentage(qint64 sentBytes, qint64 totalBytes) {
    if (totalBytes == 0) {
        return 0.0; // 避免除以零
    }
    return static_cast<double>(sentBytes) / totalBytes * 100.0;
}

QString formatPercentage(double percentage) {
    return QString::number(percentage, 'f', 2) + "%"; // 保留两位小数并加上百分号
}

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);

    QFile file("path/to/your/file");
    if (!file.open(QIODevice::ReadOnly)) {
        qWarning() << "Cannot open file for reading.";
        return -1;
    }

    qint64 totalBytes = file.size();
    qint64 sentBytes = 0;

    // 模拟文件发送过程
    const int chunkSize = 1024; // 每次发送的字节数
    while (!file.atEnd()) {
        QByteArray buffer = file.read(chunkSize);
        sentBytes += buffer.size();

        double percentage = calculatePercentage(sentBytes, totalBytes);
        QString formattedPercentage = formatPercentage(percentage);

        qDebug() << "Sent:" << sentBytes << "Total:" << totalBytes << "Percentage:" << formattedPercentage;
        
        // 在这里可以添加实际的发送代码,比如 socket.write(buffer);
        
        // 模拟延时(例如网络传输时间)
        QThread::sleep(1); 
    }

    file.close();
    
    return a.exec();
}

代码说明:

  1. calculatePercentage: 函数计算已发送字节与总字节的百分比。
  2. formatPercentage: 函数将百分比格式化为字符串,保留两位小数并加上“%”符号。
  3. main函数:
    • 打开一个文件并获取其大小。
    • 模拟文件分块发送,每次读取chunkSize字节的数据,并更新已发送字节计数。
    • 每次读取后,计算并打印出当前已发送的百分比。

你可以根据具体需求调整文件路径和其他参数。这段代码仅用于演示如何计算和格式化百分比,可以集成到你的项目中。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=12581

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?