Я пытался использовать QThread в своем приложении для обработки больших данных. Это работает, но не идеально и приводит к сбою моего приложения в его текущей версии по ссылке. Я где-то читал (не могу найти ссылку), чтобы вместо этого использовать 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.