我正在使用Qt信号和插槽。我使用以下信号槽调用。
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(finishedLoadNotification(bool)));
当发出信号loadFinished
时,将调用插槽finishedLoadNotification
。在finishedLoadNotification
中,变量' ok'总是false
。我想知道' ok'的价值在哪里?被设置为false。从代码中,我无法找到' ok'的价值。你能帮我找出变量' ok'设置为false。
答案 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);
}
}