1

QWebPage :: loadFinished(bool)シグナルで問題が発生しました。2回コールバックしますが、これは正常ですか?(リンクはまったく続きません。たとえば、HTTPステータス302)。

次のコードを考えてみましょう。すべてが問題を引き起こす可能性があります。そのスロット内に別のリンクを読み込もうとしていますが、これは問題になりますか?

スロットでqDebug() << thisUrl;毎回実行すると、3回表示されます。これは通常の、URL用に1つ、URL用に2つで、最後の2つのリンクはまったく同じです。loadFinished(bool)XXXYYY

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

1 に答える 1

4

qt 4.7.4(phantomjsを使用)でもこれが表示されます。ページの代わりにフレームのloadFinishedを使用しましたが、2回送信されません。

于 2011-12-09T22:59:25.467 に答える