Я пытаюсь использовать QThread в своем application для обработки больших данных. Он работает, но не совершенен и сбой моего приложения в его текущей версии по ссылке. Я где-то читал (не могу найти ссылку), чтобы вместо этого использовать QTimer, а также сигнальные и слоты.QTimer для обработки большого массива
То, что я хотел бы сделать, это быть в состоянии перебрать:
connect(this, &UsersProcess::ProgressBarSetValue, this->progressBar, &QProgressBar::setValue);
...
int maxRows = this->listUsers->size();
for(auto iter = this->listUsers->begin(); iter != this->listUsers->end(); ++iter)
{
row++;
emit this->ProgressBarSetValue(row);
}
где ProgressBarSetValue сигнал обновляет значение QProgressBar. Что я не уверен, что делать, это поместить его в QTimer, чтобы он не приводил к тому, что MainWindow не использовался до тех пор, пока цикл не закончится.
Удивительно, если кто-нибудь может дать мне идею или статью о том, как это сделать. Или если есть другие альтернативы без использования QThread.
Возможный дубликат [бар QT Прогресс, показывающий состояние функции] (http://stackoverflow.com/questions/22551978/qt-progress-bar-showing-status-of-a-function) – user2672165