2017-11-01 1 views
0

QWebEngineViewにはsignal void loadStarted()があります。 QWebEnginePageから受信すると、この信号を発信します。 QWebEnginePageはこの関数をQWebEnginePagePrivateからオーバーライドします。この関数はvoid loadStarted(const QUrl & provisionalUrl、bool isErrorPage = false)ですが、QWebEnginePageクラスの引数provisionalUrlではQ_UNUSED()とマークされていますが、その値を知りたいと思います。どうしたらいいですか?Qt QWebEngineViewの送信者信号の送信者またはloadStarted URLを知る方法を取得するには?

+0

またはどのようにフォームのメソッド「POST」のパラメータを取得したり、「GET」とハイパーリンクのURLが表示されたウェブページ上でクリックしましたか? –

+0

QWebEnginePage :: url()を呼び出した結果はどうでしたか?ロード/表示されたURL /ページを教えてくれませんか? QWebEnginePage :: requestedUrl() - 現在表示されているフレームによってロードされるように要求されたURL。 DNSの解決またはリダイレクトが発生した場合、URLはurl()によって返されるURLと異なる場合があります。 – ManuelH

+0

私はQWebEnginePage :: requestedUrl()を試しました - 既に読み込まれたページのアドレスを返します。私は、ページボタンの押下やリンクのクリックを傍受する必要があります。どのリンクがクリックされたかを知るには、新しいWebページを生成し、そのページ上のユーザーをナビゲートします。 –

答えて

0

ナビゲーション要求をインターセプトしてナビゲーションタイプでフィルタリングする必要がある場合は、QWebEnginePage :: acceptNavigationRequest()仮想関数をオーバーライドするのが最適です。 QWebEngineView経由

https://doc.qt.io/qt-5/qwebenginepage.html#acceptNavigationRequest

class NavigationRequestOverride : public QWebEnginePage 
{ 
public: 
    NavigationRequestOverride(QObject* parent) : QWebEnginePage(parent) {} 
protected: 
    virtual bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) 
    { 
     // Here goes your logic 
    } 
}; 
関連する問題