使用 PyQt4 显示 HTML 页面时出错 - QWebView
Posted
技术标签:
【中文标题】使用 PyQt4 显示 HTML 页面时出错 - QWebView【英文标题】:Error displaying HTML Pages using PyQt4 - QWebView 【发布时间】:2016-06-30 12:32:52 【问题描述】:根据以下 SO 文章:How to display html using QWebView. Python?
我通过 Andrean 修改了以下代码:
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'))
view.show()
app.exec_()
但是,由于某种奇怪的原因,我仍然无法在我的 GUI 窗口中查看 Google。我在下面看到以下屏幕(尽管等待了 5 分钟并且有完整的互联网连接)
See screenshot here
更重要的是,我正在尝试查看使用 Bokeh 生成的离线 HTML 文件。
from bokeh.plotting import figure, output_file, show
# prepare some data
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# create a new plot with a title and axis labels
p = figure(title="simple line example", x_axis_label='x', y_axis_label='y')
# add a line renderer with legend and line thickness
p.line(x, y, legend="Temp.", line_width=2)
# show the results
show(p)
用离线 html 文件适当地替换 GUI 脚本:
htmlPath = QUrl('line_example.html')
view.load(htmlPath)
我仍然看不到我生成的 HTML 文件 - 显示与以前相同的空白窗口。
我也尝试过如下定义 htmlPath 但它们仍然不起作用:
htmlPath = QUrl("file:///C:/Users/giranm/PycharmProjects/Dashboard%20Testing/lineGraph.html")
htmlPath = QUrl.fromLocalFile(QFileInfo("lineGraph.html").absoluteFilePath())
非常感谢您为上述工作提供任何帮助。
【问题讨论】:
【参考方案1】:请看这个答案:Bokeh plots do not display in QWebView
TLDR:显然 QWebView
不会运行加载 BokehJS 所需的 <script>
标记(这是实际执行所有渲染工作的 javascript 库)内联资源 可能选项,但请注意 QwebView
不会以任何有意义的方式被 Bokeh 视为“支持”。
【讨论】:
以上是关于使用 PyQt4 显示 HTML 页面时出错 - QWebView的主要内容,如果未能解决你的问题,请参考以下文章