2011-12-07 4 views
1

QWebPage :: loadFinished(bool)シグナルに問題があります。シグナルQWebPage :: loadFinished(bool)は2回返しますか?

次のコードを検討すると、問題が発生する可能性があります。そのスロット内で別のリンクを読み込もうとしていますが、これが問題になりますか?私はloadFinished(bool)スロットにqDebug() << thisUrl;それぞれの時間を行う場合

、私は3回のためにそれを見ることができ、通常、URL XXXに1つ、およびURL YYY用の2つの、そして最後の2つのリンクがまったく同じであるということです。

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; 
      } 
     } 
}; 

答えて

4

これもqt 4.7.4(phantomjsを参照)と同じです。私はページの代わりにフレームのloadFinishedを使用し、2回送信されません。

+0

問題は解決されていますが、なぜ私には分かりません – daisy

+0

私は本当に知っていませんし、なぜQtコードの中に入ってその理由を知ることはできません。おそらくあなたはバグレポートを提出することができますか? –

関連する問題