Сигнал QWebPage::loadFinished(bool) возвращается дважды?
У меня проблема с сигналом 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 ответ
Решение
Я вижу это тоже с QT 4.7.4 (с Phantomjs). я использовал loadFinished фрейма вместо страницы, и он не отправляется дважды.