Сигнал QWebPage :: loadFinished (bool) возвращается дважды? - PullRequest
1 голос
/ 07 декабря 2011

У меня проблема с сигналом QWebPage :: loadFinished (bool), он перезванивает дважды, это нормально? (ссылка не идет вообще, например, HTTP-статус 302)

Рассмотрим следующий код, все это может вызвать проблемы, пытается загрузить другую ссылку в этом слоте, будет ли это проблемой?

Если я делаю qDebug() << thisUrl; каждый раз в слоте loadFinished(bool), я могу видеть его 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;
            }
        }
};

1 Ответ

4 голосов
/ 10 декабря 2011

Я тоже это вижу с qt 4.7.4 (с фантомами). я использовал loadFinished фрейма вместо страницы, и он не отправляется дважды.

...