5

私はQFtpで遊んでいます(はい..私は知っています)そしてすべてがうまくいきます。

ガイドラインとして、独自の例のコードを使用します。

http://doc.qt.io/archives/qt-4.7/network-qftp-ftpwindow-cpp.html

私が抱えている唯一の問題は、大きなファイル(たとえば、3 GB)を送信(または受信)するときに、プログレスバーがグリッチアウトすることです。

これは、qint64からintinへのキャストによるものです。

void FtpWindow::updateDataTransferProgress(qint64 readBytes, 
    qint64 totalBytes) 
{
    progressDialog->setMaximum(totalBytes);
    progressDialog->setValue(readBytes);
}

約1時間グーグルして、範囲外にならないように「安全」に保つことに決めた後、これを処理するための最も良い方法は何でしょうか。

while (totalBytes > 4294967295UL)
{ 
   totalBytes = totalBytes/4294967295UL;
   readBytes = readBytes/4294967295UL;
}

しかし、それは正しく「感じ」ません。。

4

2 に答える 2

7

プログレスバーに進行状況をパーセンテージで表示させることができます。

void FtpWindow::updateDataTransferProgress(qint64 readBytes, 
    qint64 totalBytes) 
{
    progressDialog->setMaximum(100);
    progressDialog->setValue((qint)((readBytes * 100) / totalBytes));
}
于 2011-02-08T10:20:15.977 に答える
1

プログレスバーを0〜100の範囲に設定し、絶対値を設定する代わりに、読み取られたバイトのパーセンテージを表示します。

于 2011-02-08T10:19:32.750 に答える