如何使用QWebView显示html。Python?

2024-04-24 18:44:04 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在控制台中以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>

Tags: tofromimportviewhtml格式sysbody
1条回答
网友
1楼 · 发布于 2024-04-24 18:44:04

由于QT是一个异步库,如果在调用load之后立即尝试查看webview的html数据,则可能不会有任何结果,因为它会立即返回,并且在结果可用时会触发loadFinished信号。当然,您可以尝试像调用load后立即使用'u result\u 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_()

相关问题 更多 >