2010-09-27 8 views
0

Мне нужно увеличить progressbar в qt каждый раз, когда файл копируется из одного места в другое. Например, необходимо скопировать 64 файла. Как можно допустить, чтобы уровень прогресса знал, что количество увеличивается. Ниже приведен код помощи. Не могли бы вы его исчерпать.qprogressbar qfile

class MyClass : ... 
{ 
... 
public slots: 
    void onWrite(qint64); 
}; 

MyClass::MyClass(...) 
{ 
    // ... 
    progress->setMaximum(QFileInfo(fromFile).size()/1024); 
    written = 0; 
    connect(&toFile, SIGNAL(bytesWritten(qint64)), SLOT(onWrite(qint64))); 
    // ... 
} 

void MyClass::onWrite(qint64 w) 
{ 
    written += w; 
    progress->setValue(written/1024); 
} 
+0

Не могли бы вы переформатировать свой вопрос, чтобы он был читабельным? – tibur

+0

класс MyClass: ... { ... общественные слоты: void onWrite (qint64); }; MyClass :: MyClass (...) { // ... progress-> setMaximum (QFileInfo (fromFile) .size()/1024); письменный = 0; connect (& toFile, SIGNAL (bytesWritten (qint64)), SLOT (onWrite (qint64))); // ... } void MyClass :: onWrite (qint64 w) { письменный + = w; progress-> setValue (написано/1024); } – nish

+0

Каждый раз, когда файл копируется из одного места в другое, индикатор прогресса должен отражать его. Например, есть 64 файла для копирования из локального сервера. Как можно допустить, чтобы уровень прогресса знал, что количество увеличивается. Я нашел приведенный выше код на qtforum. Я, будучи новичком, не понимаю его в полном объеме. Могу ли я завершить картину для меня. Спасибо subject: RE: Как показать ход выполнения QFile на QProgressBar – nish

ответ

1

Вы можете просто получить текущее значение и добавить новое количество байтов, записанных на него.

void MyClass::onWrite(qint64 w) 
{ 
    written += w; 
    progress->setValue(progress->value() + written/1024); 
} 
+0

мог бы предложить ссылку, которая будет объяснять это подробно мне. это поможет мне переварить концепцию. Спасибо – nish

Смежные вопросы