我有一个问题与q网页::loadFinished (bool)信号,它回调两次,这是正常的吗?(下面根本没有链接,例如HTTP状态302)
考虑下面的代码,整个事情可能会导致问题,正在尝试加载另一个链接在那个槽,这将是一个问题吗?
如果我每次在loadFinished(bool)
槽中做一个qDebug() << thisUrl;
,我可以看到它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;
}
}
};
我在qt 4.7.4(与phantomjs)中也看到了这一点。我使用了框架的loadFinished而不是页面的loadFinished,它不会发送两次。