如果您想在不依赖于 QWebEngineView::loadFinished
的条件下一直进行页面加载检测,可以使用定时器或轮询的方式来实现。
- 使用定时器:
QTimer* timer = new QTimer(this);
QObject::connect(timer, &QTimer::timeout, [this]() {
if (view.page()->isLoading()) {
// 页面正在加载中
} else {
// 页面加载完成
timer->stop();
}
});
timer->start(1000); // 每隔1秒钟检查一次页面加载状态
上述代码会每隔1秒钟检查一次页面是否仍然在加载中。当页面加载完成后,停止定时器。
- 使用轮询:
while (view.page()->isLoading()) {
QCoreApplication::processEvents();
}
// 页面加载完成
上述代码会在一个循环中不断检查页面是否正在加载中,通过调用 QCoreApplication::processEvents()
来处理事件队列,确保界面仍然响应用户操作。
需要注意的是,在使用定时器或轮询的方式进行页面加载检测时,要确保不会造成过多的资源消耗和性能问题。适当设置合理的时间间隔,并根据实际情况做出调整。
内容由零声教学AI助手提供,问题来源于学员提问