2

私はこのスクリプトを持っており、準備ができたらさらに何かをしたいと思います。

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)
4

1 に答える 1

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、およびPyQt4.9.5を使用しています。

于 2012-11-16T00:21:15.340 に答える