2010-07-06 5 views
7

Ich öffne eine Seite in QtWebView (in PyQt, wenn das wichtig ist) und ich möchte alle Links im System Standard-Browser öffnen. I.e. Ein Klick auf einen Link sollte die Site in QtWebView nicht ändern, sollte aber mit dem Standardbrowser geöffnet werden. Ich möchte es dem Benutzer unmöglich machen, die Site in QtWebView zu ändern.fangen Link Klicks in QtWebView und öffnen im Standard-Browser

Wie kann ich das tun?

Danke, Albert

Antwort

9

, dass es funktioniert:

import sys, webbrowser 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.QtWebKit import * 

app = QApplication(sys.argv) 
web = QWebView() 

web.load(QUrl("http://www.az2000.de/projects/javascript-project/")) 
web.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) 


def linkClicked(url): webbrowser.open(str(url.toString())) 
web.connect(web, SIGNAL("linkClicked (const QUrl&)"), linkClicked) 


web.show() 

sys.exit(app.exec_()) 
+1

Dank. Wir können den Handler auch auf diese Weise binden: web.linkClicked.connect (self.linkClicked) –