我正在使用Qt信号和插槽。我使用下面的信号槽调用。
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(finishedLoadNotification(bool)));当发出信号loadFinished时,调用时隙finishedLoadNotification。在finishedLoadNotification中,变量'ok‘始终为false。我想知道“ok”的值在哪里被设置为false。从代码中,我找不到“ok”的值。你能帮我找出变量“ok”在哪里设置为false吗?
发布于 2016-09-26 18:43:00
来自Qt docs
ok将指示加载是否成功或发生了任何错误。
所以这个变量是在QWebView发出信号时设置的。如果为ok = false,则表示发生了错误,您需要对其进行处理。如果为ok = true,这意味着一切都进行得很顺利。
如果你想了解更多关于你的错误的详细信息,你可以看看这里:
How to get detailed error message when QTWebKit fails to load a page?
发布于 2016-09-26 19:42:33
布尔值只是表示是否发生了错误。你不能通过处理网页的加载进度来检查正确的加载进度。让我们使用与您自己的插槽连接的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);
}
}https://stackoverflow.com/questions/39699566
复制相似问题