Портирование 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
завершить?
Лямбда вызывается позже и тем же потоком (в цикле событий), поэтому переменные условия не помогут. Есть ли способ заставить цикл событий обрабатывать опубликованную лямбду (не затрагивая другие опубликованные события)?