捕获QtWebView中的链接点击并在默认浏览器中打开

Alb*_*ert 7 qt qt4 pyqt qtwebkit

我在QtWebView中打开一个页面(在PyQt中,如果这很重要),我想打开系统默认浏览器中的所有链接.即单击链接不应更改QtWebView中的站点,但应使用默认浏览器打开它.我想让用户无法在QtWebView中更改站点.

我怎样才能做到这一点?

谢谢,艾伯特

Alb*_*ert 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_())
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。我们也可以使用这种方式绑定处理程序: web.linkClicked.connect(self.linkClicked) (2认同)