Как дождаться завершения всех соединений при использовании QNetworkAccessManager?
я делаю парсер на qt с использованием QNetworkAccessManager, пишу веб-паук. С одной страницы скачиваю ссылки на другие страницы, а потом в цикле отправляю запрос на соединение по этим ссылкам и пытаюсь парсить эти страницы и данные записываю в модель QAbstractItemModel. Но у меня возникает проблема, модель создается не дождавшись завершения парсинга. То есть данные я получаю не все а модель уже создается. Можете пожалуйста подсказать как мне сначала завершить полностью парсер а потом только создавать модель?
void MainWindow::parseElementes(const QString& elementes)
{
if(!this->checkAddress())
{
return;
}
this->parser.setAddress(ui->listSiteComboBox
->currentText());
refElements = std::move(parser.parseRefElement(elementes));
for(int i = 0; i < refElements.size(); ++i)
manager->get(QNetworkRequest(QUrl(refElements[i])));
}
void MainWindow::parsePageElement(const QString& page)
{
if(!this->checkAddress())
{
return;
}
this->parser.parseElement(page);
this->model = new Model(parser.getDataEl().size(),
this->headTable.size(),
this->headTable,
parser.getDataEl(),
this);
ui->tableView->setModel(model);
}
В методе parseElementes я получаю ссылки на другие страницы и в том же методе отправляю запрос на соединение. В методе parsePageElement происходит парсинг по этим ссылкам, это происходит через объект parser и в том же объекте parser сохраняются данные для модели. Эти данные передаются в модель при создании. И проблема в том что данные не все распарсились но модель создается. Если сделать запрос на соединение для одной ссылки, то создается таблицы с одним полем, но если больше то не выходит