我有这个脚本,我想在准备就绪时做更多的事情:
from PyQt4 import QtCore, QtGui, QtWebKit
class WebViewCreator:
def __init__(self):
self.view = QtWebKit.QWebView()
self.view.setPage(QtWebKit.QWebPage())
self.view.connect(self.view, QtCore.SIGNAL('loadFinished(bool)'), self.load_finished)
path = self.app.resources_uri() + "/index.html"
self.view.load(QtCore.QUrl(path))
def load_finished(self, ok):
print ok
def onDone(ok):
print ok
我遇到的问题是,如果我将一个函数连接到loadFinished(bool)信号,那么函数会被执行,但是如果我连接一个像self.load_finished这样的对象的方法,那么这个方法就不会调用了,我可以'明白为什么: - /
同样的情况发生在:
self.view.loadFinished.connect(onDone)
与
self.view.loadFinished.connect(self.load_finished)
答案 0 :(得分:4)
您发布的代码没有明显错误。
也就是说,当我运行它的略微简化版本时,它会成功加载页面并(最终)打印True
:
from PyQt4 import QtCore, QtGui, QtWebKit
class WebViewCreator(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.view = QtWebKit.QWebView(self)
self.view.loadFinished.connect(self.load_finished)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.view)
self.view.load(QtCore.QUrl('http://stackoverflow.com/'))
def load_finished(self, ok):
print ok
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = WebViewCreator()
window.show()
sys.exit(app.exec_())
这是在Linux上使用Python 2.7.3,Qt 4.8.3和PyQt 4.9.5。