python – QWebKit linkClicked信号永远不会触发
发布时间:2020-12-20 11:18:00 所属栏目:Python 来源:网络整理
导读:import sysfrom PyQt4.QtGui import *from PyQt4.QtCore import *from PyQt4.QtWebKit import QWebViewapp = QApplication(sys.argv)web_view = QWebView()def url_changed(url): print 'url changed: ',urldef link_clicked(url): print 'link clicked: ',u
import sys from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4.QtWebKit import QWebView app = QApplication(sys.argv) web_view = QWebView() def url_changed(url): print 'url changed: ',url def link_clicked(url): print 'link clicked: ',url def load_started(): print 'load started' def load_finished(ok): print 'load finished,ok: ',ok web_view.connect(web_view,SIGNAL("urlChanged(const QUrl&)"),url_changed) web_view.connect(web_view,SIGNAL("linkClicked(const QUrl&)"),link_clicked) web_view.connect(web_view,SIGNAL('loadStarted()'),load_started) web_view.connect(web_view,SIGNAL('loadFinished(bool)'),load_finished) web_view.load(QUrl('http://google.com')) web_view.show() sys.exit(app.exec_()) linkClicked信号无效.其他信号有效.在Win XP上的Qt 4.6.2. 解决方法
必须正确设置
link delegation policy以发出
linkClicked信号.
import sys from PyQt4.QtGui import * from PyQt4.QtCore import * from PyQt4.QtWebKit import QWebPage,QWebView app = QApplication(sys.argv) web_view = QWebView() web_view.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks) def url_changed(url): print 'url changed: ',load_finished) web_view.load(QUrl('http://google.com')) web_view.show() sys.exit(app.exec_()) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |