【问题标题】:How can I directly input HTML code in QtCore.QUrl without referring to file path?如何在 QtCore.QUrl 中直接输入 HTML 代码而不参考文件路径?
【发布时间】:2017-11-20 21:24:53
【问题描述】:

我正在使用 PyQt5 在 Python 中构建一个应用程序,我将冻结它。因此,我想让我的 python 代码独立于任何本地文件路径。 在某些时候,我正在加载一个 html 代码:

self.pageXXX.html_code.load(QtCore.QUrl.fromLocalFile(QtCore.QDir.current().filePath("example.html")))

如何更改此命令,以便将 HTML 代码直接粘贴到 html.load()

类似:

    self.pageXXX.html_code.load('''
                                      HTML code
                                ''')

【问题讨论】:

  • 试试setHtml()而不是load()
  • 我做到了,但是,因为我在 HTML 中有一个 JS 代码并且还有 qwebchannel.js,所以当我使用 setHtml() 时,HTML 页面无法正确加载并且我收到一条错误消息:@ 987654328@
  • 您是否正确添加了 QWebChannel ? SO
  • 我没有!谢谢,它有效!

标签: python html pyqt5 qurl qtwebview


【解决方案1】:

正如@Maurice Meyer 所建议的,问题出在我设置QWebChannel 的方式上。我刚刚添加了

<script src="qrc:///qtwebchannel/qwebchannel.js"></script>

在我的 HTML 代码的顶部,然后:

from PyQt5.QtCore import QObject, pyqtSlot
from PyQt5.QtWebChannel import QWebChannel
from PyQt5.QtWebEngineWidgets import QWebEngineView

在我的 Python 代码中。神奇的事情发生了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-07
    • 2023-03-18
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2023-01-09
    相关资源
    最近更新 更多