首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用PyQt QtWebKit loadFinished

未调用PyQt QtWebKit loadFinished
EN

Stack Overflow用户
提问于 2012-11-16 07:41:22
回答 1查看 1.7K关注 0票数 2

我有这个脚本,当它准备好的时候,我想用它做更多的事情:

代码语言:javascript
复制
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这样的对象的方法,那么这个方法就不会被调用,我不明白为什么:-/

同样的情况也发生在:

代码语言:javascript
复制
self.view.loadFinished.connect(onDone)

对比:

代码语言:javascript
复制
self.view.loadFinished.connect(self.load_finished)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-16 08:21:15

您发布的代码没有明显的错误。

也就是说,当我运行这个稍微简化的版本时,它会成功加载页面并(最终)打印True

代码语言:javascript
复制
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上使用python2.7.3、Qt 4.8.3和PyQt 4.9.5。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13408179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档