2011-04-23 20 views
1

这是我尝试使用的Webkit的基本PyQ​​t代码。QtWebkit:loadFinished和loadProgress插槽永远不会执行

import sys 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.QtWebKit import * 
from PyQt4.QtNetwork import * 

class XPrinter(QObject): 

    def __init__(self): 
     QObject.__init__(self) 

    def print_page_info(self, ok): 
     print ok 

    def print_load_started(self): 
     print 'started loading' 

    def print_load_percent(self, percent): 
     print percent 


app = QApplication(sys.argv) 

web = QWebView() 
xprinter = XPrinter() 
QObject.connect(web, SIGNAL("loadFinished()"), xprinter.print_page_info) 
QObject.connect(web, SIGNAL("loadStarted()"), xprinter.print_load_started) 
QObject.connect(web, SIGNAL("loadProgress()"), xprinter.print_load_percent) 
web.load(QUrl("http://www.gnu.org")) 
web.setWindowState(Qt.WindowMaximized) 
web.show() 

sys.exit(app.exec_()) 

我面临的问题是插槽loadFinished和loadProgress永远不会执行。请告诉我我在哪里做错了?

回答

4

尝试使用新的style signals

import sys 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.QtWebKit import * 
from PyQt4.QtNetwork import * 

class XPrinter(QObject): 

    def __init__(self): 
     QObject.__init__(self) 

    def print_page_info(self, ok): 
     print ok 

    def print_load_started(self): 
     print 'started loading' 

    def print_load_percent(self, percent): 
     print percent 


app = QApplication(sys.argv) 

web = QWebView() 
xprinter = XPrinter() 
web.loadFinished.connect(xprinter.print_page_info) 
web.loadStarted.connect(xprinter.print_load_started) 
web.loadProgress.connect(xprinter.print_load_percent) 

web.load(QUrl("http://www.gnu.org")) 
web.setWindowState(Qt.WindowMaximized) 
web.show() 

sys.exit(app.exec_()) 

编辑: 你也有错误签名 QWebview

QObject.connect(web, SIGNAL("loadFinished(bool)"), xprinter.print_page_info) 
QObject.connect(web, SIGNAL("loadStarted()"), xprinter.print_load_started) 
QObject.connect(web, SIGNAL("loadProgress(int)"), xprinter.print_load_percent) 
+0

是其工作。但是,我试图找出原始代码不起作用的原因。 – Xolve 2011-04-23 17:05:43

+0

感谢您的编辑确实有帮助:)但是新风格的信号更适合使用。 – Xolve 2011-05-04 04:58:20