2010-07-06 93 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

相關問題