2010-07-06 129 views
7

我打开QtWebView中的页面(在PyQt中,如果有的话),我想打开系统默认浏览器中的所有链接。即点击一个链接不应该改变QtWebView中的网站,但它应该用默认浏览器打开它。我想让用户无法在QtWebView中更改网站。在QtWebView中捕获链接点击并在默认浏览器中打开

我该怎么做?

感谢, 阿尔伯特

回答

9

这就行了:

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

感谢。我们可以使用这种方式绑定处理程序:web.linkClicked.connect(self.linkClicked) – 2014-12-12 05:49:40

相关问题