我正在玩QFtp(是的......我知道)并且一切正常。
使用他们自己的例子中的代码作为指导。
http://doc.qt.io/archives/qt-4.7/network-qftp-ftpwindow-cpp.html
我遇到的唯一问题是发送(或接收)大文件(比方说3 GB)时,进度条会出现故障。
这是由于从qint64转换为int in:
void FtpWindow::updateDataTransferProgress(qint64 readBytes,
qint64 totalBytes)
{
progressDialog->setMaximum(totalBytes);
progressDialog->setValue(readBytes);
}
我想知道在google搜索大约一个小时之后处理这个问题最好的办法是什么,并确保我不会超出范围来保持“安全”。
while (totalBytes > 4294967295UL)
{
totalBytes = totalBytes/4294967295UL;
readBytes = readBytes/4294967295UL;
}
但这并不“感觉”正确。 。
答案 0 :(得分:7)
您可以使进度条以百分比形式显示进度:
void FtpWindow::updateDataTransferProgress(qint64 readBytes,
qint64 totalBytes)
{
progressDialog->setMaximum(100);
progressDialog->setValue((qint)((readBytes * 100) / totalBytes));
}
答案 1 :(得分:1)
将进度条设置为0-100范围,并显示读取的字节百分比,而不是尝试设置绝对值。