loadFinished(bool)返回两次



我有一个问题与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,它不会发送两次。

最新更新