我遇到了 QWebPage::loadFinished (bool) 信号的问题,它回调了两次,这正常吗?(根本没有链接,例如HTTP状态302)
考虑下面的代码,整个事情可能会导致问题,试图在该插槽中加载另一个链接,这会是一个问题吗?
如果我qDebug() << thisUrl;
每次在loadFinished(bool)
slot 中执行一次,我可以看到 3 次,这是正常的吗,一次用于 url XXX
,两次用于 url YYY
,最后两个链接完全相同。
class Dummy
{
public:
Dummy()
{
page = new QWebPage(this);
connect (page , SIGNAL(loadFinished(bool)) , SLOT(loadFinished(bool)));
page->mainFrame()->load ("XXX");
}
private:
QWebPage *page;
private slots:
void loadFinished (bool ok)
{
if ( ! ok ) return;
const QString & thisUrl = page->mainFrame()->url().toString();
if ( thisUrl matches XXX )
{
// parse reply message of url XXX
page->mainFrame()->load ("YYY");
return;
}
if ( thisUrl matches YYY )
{
// parse reply message of url YYY
return;
}
}
};