Cod*_*eak 5 python pyqt qtwebkit pyqt4
根据文档,只有在所有页面元素完成加载后才应发出loadFinished.这应该意味着它只会被调用一次,但是我注意到在像youtube.com这样的网站上,它会被调用两次?有没有其他方法来解决这个错误或什么是最可靠的方法来检测page.load事件?
这是测试代码:
import sys
from PyQt4 import QtCore, QtGui, QtWebKit
from PyQt4.QtCore import QUrl
from PyQt4.QtGui import QApplication
def onDone(val):
print "Done ...",val
def onStart():
print "Started..."
app = QApplication(sys.argv)
ui = QtWebKit.QWebView()
ui.loadStarted.connect(onStart)
ui.loadFinished.connect(onDone)
ui.load(QUrl("http://www.youtube.com"))
ui.showMaximized()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
输出:
Started...
Done ... True
Started...
Done ... True
Run Code Online (Sandbox Code Playgroud)
编辑:有一个几乎相同的问题,但它> 2岁,仍然没有答案.
load*每个加载的帧都会触发一次信号。
要仅捕获第一组信号,请连接到主机的相应信号:
ui.page().mainFrame().loadStarted.connect(onStart)
ui.page().mainFrame().loadFinished.connect(onDone)
Run Code Online (Sandbox Code Playgroud)
您可以通过连接到信号来验证是否正在加载其他帧,该信号将为主框架加载后创建的每个后续frameCreated帧触发一次:
def onFrame(val):
print 'Frame Created:', val.frameName()
ui.page().frameCreated.connect(onFrame)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4593 次 |
| 最近记录: |