Come QT è una libreria asincrona, probabilmente non avete alcun risultato se si tenta immediatamente di guardare i dati HTML della visualizzazione web dopo aver chiamato carico, perché restituisce immediatamente, e si attiverà il loadFinished segnale una volta che il risultato è disponibile. Naturalmente puoi provare ad accedere ai dati html allo stesso modo che ho fatto nel metodo _result_available immediatamente dopo aver chiamato carico, ma restituirà una pagina vuota (questo è il comportamento predefinito).
import sys
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QUrl
from PyQt4.QtWebKit import QWebView
class Browser(QWebView):
def __init__(self):
QWebView.__init__(self)
self.loadFinished.connect(self._result_available)
def _result_available(self, ok):
frame = self.page().mainFrame()
print unicode(frame.toHtml()).encode('utf-8')
if __name__ == '__main__':
app = QApplication(sys.argv)
view = Browser()
view.load(QUrl('http://www.google.com'))
app.exec_()
Grazie mille! Il tuo esempio è semplicemente fantastico! – Vor
Prego. – andrean
Grazie, ma quando eseguo questo _result_available() non viene mai chiamato anche se __init __ (self) lo fa. – andyabel