加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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_())

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读