void QWebView :: loadFinished(bool ok)ok始终为false

时间:2016-09-26 09:47:41

标签: c++ qt signals-slots qwebview

我正在使用Qt信号和插槽。我使用以下信号槽调用。

connect(this, SIGNAL(loadFinished(bool)), this, SLOT(finishedLoadNotification(bool)));

当发出信号loadFinished时,将调用插槽finishedLoadNotification。在finishedLoadNotification中,变量' ok'总是false。我想知道' ok'的价值在哪里?被设置为false。从代码中,我无法找到' ok'的价值。你能帮我找出变量' ok'设置为false。

2 个答案:

答案 0 :(得分:0)

来自Qt docs

  

ok表示加载是否成功或是否发生错误。

因此QWebView发出信号时会设置此变量。如果ok = false,则只表示发生了错误,您需要对其进行处理。如果ok = true,这意味着一切顺利。

如果您想了解有关错误的更多详细信息,请查看此处:

How to get detailed error message when QTWebKit fails to load a page?

答案 1 :(得分:0)

布尔值只表示错误发生了。您无法通过处理网页的加载进度来检查正确的加载进度。让我们使用loadProgress(int progress)连接您自己的插槽:

void MyCalss::handleProgress(int progress) {
     bool loaded = (progress == 100);
     if (_loaded != loaded) {  // State changed, let's emit a signal
         _loaded = loaded;
         emit webViewLoaded(loaded);
     }
}