2012-11-14 3 views
10

콘솔에 HTML 형식으로 웹 페이지를 표시하는 방법. QT는 비동기 라이브러리이므로QWebView를 사용하여 html을 표시하는 방법. 파이썬?

import sys 
from PyQt4.QtGui import QApplication 
from PyQt4.QtCore import QUrl 
from PyQt4.QtWebKit import QWebView 

app = QApplication(sys.argv) 
view = QWebView() 
view.load(QUrl('http://example.com') 
# What's next? how to do something like: 
# print view.read() ??? 
# to display something similar to that: 
# <html><head></head><body></body></html> 

답변

20

, 당신은 아마 당신이 바로 부하를 호출 한 후 웹보기의 HTML 데이터를 볼하려고하면 즉시 반환하기 때문에, 어떤 결과가되지 않으며을 트리거 loadFinished 결과를 사용할 수있는 신호. 물론 로드을 호출 한 직후 _result_available 메서드에서했던 것과 같은 방법으로 html 데이터에 액세스 할 수 있지만 빈 페이지가 반환됩니다 (기본 동작).

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_() 
+1

대단히 감사합니다. 당신의 예는 대단합니다! – Vor

+1

반갑습니다. – andrean

+0

고마워,하지만이 _result_available()을 실행할 때 __init __ (self)가 호출되지 않는다. – andyabel

관련 문제