【问题标题】:QWebKit linkClicked signal never firesQWebKit linkClicked 信号从不触发
【发布时间】:2011-03-21 20:08:48
【问题描述】:
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。

【问题讨论】:

    标签: python qt pyqt qwebview qwebkit


    【解决方案1】:

    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: ', 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_())
    

    【讨论】:

      猜你喜欢
      • 2013-05-10
      • 2017-03-16
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 2011-09-21
      • 1970-01-01
      相关资源
      最近更新 更多