2017-11-01 1 views
0

QWebEngineView hat Signal void loadStarted(). Es gibt dieses Signal aus, wenn es von QWebEnginePage empfangen wurde. QWebEnginePage überschreibt diese Funktion von QWebEnginePagePrivate, wobei void loadStarted (const QUrl & provisorischUrl, bool isErrorPage = false) ist, aber in QWebEnginePage class argument provisoricalUrl als Q_UNUSED() markiert ist, aber ich möchte seinen Wert wissen. Wie kann ich es tun?Qt Wie bekomme ich den Absender des Sendersignals oder wie ladeStarted die URL von QWebEngineView?

+0

Oder wie über QWebEngineView Parameter der Methode "POST" des Formulars erhalten oder "GET" und URL des Hyperlink geklickt angezeigte Webseite? –

+0

Was ist mit dem Ergebnis von QWebEnginePage :: url(), sagt Ihnen das nicht, welche URL/Seite wurde geladen/angezeigt? Sehen Sie sich auch QWebEnginePage :: requestedUrl() an - Die URL, die vom aktuell angezeigten Frame geladen werden soll. Die URL kann sich von der URL unterscheiden, die von URL() zurückgegeben wird, wenn eine DNS-Auflösung oder eine Umleitung auftritt. – ManuelH

+0

Ich habe QWebEnginePage :: requestedUrl() versucht - es gibt die Adresse der bereits geladenen Seite zurück. Ich muss auf Seitenbuttons drücken und Links anklicken. Um zu wissen, auf welchen Link geklickt wurde, generieren Sie eine neue Webseite und navigieren Sie durch den Benutzer. –

Antwort

0

Wenn Sie Navigationsanforderungen abfangen und nach Navigationstyp filtern müssen, können Sie die virtuelle Funktion QWebEnginePage :: acceptNavigationRequest() am besten überschreiben.

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