[gelöst]QWebView und linkClicked

Alles rund um die Programmierung mit Qt
Antworten
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

[gelöst]QWebView und linkClicked

Beitrag von jerry42 »

Hallo,

ich versuche mich gerade zum ersten Mal am webkit. Soweit so gut.

Letztlich will ich eine Webseite einbetten auf der man ganz normal surfen kann.
Um allerdings bestimmte Links abzufangen hab ich die LinkDelegationPolicy auf DelegateAllLinks gesetzt. Dem Verhalten nach wird der Linkaufruf dann komplett abgefangen und hat auf der Webseite selbst keine Auswirkung mehr. Da ich aber nur bei bestimmten Links dieses Verhalten haben will, ruf ich für die anderen einfach ein webview->setUrl(<url die ich vom linkClicked-Signal erhalte>). Das funktioniert auch, allerdings lädt die Seite komplett neu, dass heißt ich hab für einen Bruchteil eine komplett weiße Seite.
Das ganze ist nur sobald ich die Links abfange. Ohne die Policy hab ich ein normales Surfverhalten.

Meine Frage ist nun, ob es einen anderen Weg dafür gibt auf bestimmte Links zu reagieren, ohne dass die Seite komplett neu gerendert wird.
Vielleicht versteh ich komplett die Logik falsch. Oder bild ich mir das ganze nur ein?

Vielleicht weiß jemand Rat.

Danke im Voraus.
jerry42

Linux, Qt 4.8.2

Code
Im Konstruktor des MainWindow

Code: Alles auswählen

    ui->webView->setUrl(QUrl("http://spiegel.de"));
    ui->webView->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
    ui->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
    ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
Das linkChanged Signal ist dann verbunden mit folgendem Code:

Code: Alles auswählen

 
  if(url.path()=="/bla") {
    ...
  } else {
    ui->webView->setUrl(url);
  }
Zuletzt geändert von jerry42 am 14. Juni 2012 13:55, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QWebView und linkClicked

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
jerry42
Beiträge: 126
Registriert: 9. Oktober 2008 10:48

Re: QWebView und linkClicked

Beitrag von jerry42 »

Danke Dir. Das war genau das was ich gesucht habe.

Hab jetzt die Policy wieder auf den default Wert gesetzt. Die "acceptNavigationRequest" Methode überschrieben, und kontrolliere jetzt da, ob meine bestimmte Url aufgerufen wurde. Klappt wunderbar.

Gruß
jerry42
Antworten