Портирование Qt WebKit на Qt WebEngine: как обрабатывать асинхронные вызовы?

Я использую Qt-5.8, Рассмотрим ситуацию, когда мне нужно в каком-то смысле проверить содержание QWebEnginePage:

bool checkContent(const QString& pageContent) { return /*the logic goes here*/; }
bool checkContent(QWebEnginePage* page)
{
    bool result = false;
    page->toHtml([&](const QString& content){ result = checkContent(content); });
    // Have to return the check result here!
    // So I want to wait for lambda to complete!
    return result;
}

Вопрос в том, как я могу ждать, когда лямбда перейдет к toHtml завершить?

Лямбда вызывается позже и тем же потоком (в цикле событий), поэтому переменные условия не помогут. Есть ли способ заставить цикл событий обрабатывать опубликованную лямбду (не затрагивая другие опубликованные события)?

0 ответов

Другие вопросы по тегам