提问人:Jaimee-lee Lincoln 提问时间:2/20/2023 更新时间:2/20/2023 访问量:364
如何在 PyQt5 窗口中渲染 HTML?[复制]
How to render HTML in PyQt5 window? [duplicate]
问:
我是使用 PyQt5 创建 GUI 的新手,我想我需要帮助。
我正在尝试创建一个简单的窗口来呈现一个简单的 html 文件。但是,当我使用下面的代码时,窗口会渲染,但中央小部件/整个窗口都是空的。我是否错过了允许显示 HTML 的步骤?
使用 vscode 中的调试器模式,我已经能够找出可能成功做某事的方法。它包含 ,所以我假设这可能是我的 h1 和 p 元素。view.load()
DrawChildren: 2
我错过了什么?
simple_test.html
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>
Python 脚本
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtWebEngineWidgets
import sys
import os
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Feelings App Prototype")
view = QtWebEngineWidgets.QWebEngineView()
view.load(QUrl('html_files\\simple_test.html'))
self.setCentralWidget(view)
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec()```
答:
0赞
Alexander
2/20/2023
#1
对于本地 html 文件,您可以读取该文件并使用视图的方法。setHtml
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtWebEngineWidgets
from pathlib import Path
import sys
import os
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Feelings App Prototype")
view = QtWebEngineWidgets.QWebEngineView()
html = Path('html_files\\simple_test.html').read_text(encoding="utf8")
view.setHtml(html)
self.setCentralWidget(view)
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec()
-1赞
Muhammad Ismail
2/20/2023
#2
在本文中,您将了解如何在 PyQt5 对话框 python GUI 中添加或渲染 HTML 文件。这是参考资料,阅读它,它会对你有所帮助。
评论
QUrl.fromLocalPath(),
可能带有绝对路径(即使动态构造)。请注意,如果您不需要高级和现代的 HTML 功能,请考虑使用更有限但相当小(在内存和要求方面)的 QTextEdit。