Скелет:
import sys import PySide.QtCore import PySide.QtGui import PySide.QtWebKit class GUIBrowser(PySide.QtWebKit.QWebView): def __init__(self): super().__init__() def tst(): web.setHtml(tstHtmlB) app = PySide.QtGui.QApplication(sys.argv) web = GUIBrowser() web.setHtml(tstHtml) web.linkClicked = tst() web.show() sys.exit(app.exec_())
Испробована куча вариантов, в т.ч.
self.linkClicked.connect(tst) linkClicked = PySide.QtCore.Signal(str, str, str, str)
Но при клике на ссылку идет не вызов функции прописанной в слоте, а стандартное действие - переход по ссылке.
Решение спасибо vic57
#!/usr/bin/env python #coding:utf-8 from PySide.QtGui import QApplication from PySide.QtWebKit import QWebView, QWebPage class View(QWebView): def __init__(self): QWebView.__init__(self) self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) self.linkClicked.connect(self.on_link) def on_link(self,url): print('link:',url.path()) if __name__=="__main__": app = QApplication([]) view = View() html = "<html><body><a href=\"about:blank\">Click Me</a></body></html>" view.setHtml(html) view.move(0,0) view.resize(400,300) view.show() app.exec_()