Jak QT jest biblioteką asynchronicznej, prawdopodobnie nie będzie mieć żadnego rezultatu, jeśli natychmiast starają się spojrzeć na dane HTML swojej WebView po wywołaniu obciążenie, ponieważ zwraca natychmiast i będzie wyzwolić loadFinished sygnał, gdy wynik jest dostępny. Oczywiście możesz próbować uzyskać dostęp do danych html w taki sam sposób, jak w metodzie _result_available, zaraz po wywołaniu load, ale zwróci ona pustą stronę (jest to zachowanie domyślne).
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_()
Dziękuję bardzo! Twój przykład jest po prostu świetny! – Vor
Nie ma za co. – andrean
Dzięki, ale kiedy uruchomię to _result_available() nigdy nie zostanie wywołany, chociaż __init __ (self) robi. – andyabel