python - 如何在 QWebEngineView 中设置背景图片
问题描述
我正在使用来自 QtWebEngineWidgets 的 QWebEngineView 来显示图像,并且我想将其作为背景图像。但它没有显示任何东西。我怎样才能做到这一点?
我也尝试了 QtWebKitWidgets 中的 QWebView,但它仍然无法正常工作。
这是我的代码:
view = QtWebEngineWidgets.QWebEngineView()
html = """
<html>
<head>
<style>
body{background-image:url("D:\\house.jpg");}
</style>
</head>
<body></body>
</html>"""
view.setHtml(html)
我希望视图将图像 house.jpg 显示为背景,但它只显示一个白色窗口
解决方案
无效 QWebEnginePage::setHtml(const QString &html, const QUrl &baseUrl = QUrl())
将此页面的内容设置为 html。baseUrl 是可选的,用于解析文档中的相对 URL,例如引用的图像或样式表。
在 Windows 上测试。
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QTimer, QDateTime, QUrl
html = """
<html>
<head>
<meta charset="utf-8">
<title>background-image</title>
<style>
body {
background-image: url('file:///D:/_Qt/Python-Examples/_PyQt5/Image/logo.png');
background-color: #c7b39b;
}
p {
color: #f00;
font: bold italic 20pt 'Comic Sans MS';
}
</style>
</head>
<body>
<p>Hello World</p>
</body>
</html>
"""
def append():
some_html = "<p>{}</p>".format(QDateTime.currentDateTime().toString())
page.runJavaScript("document.body.innerHTML += '{}'".format(some_html)
)
if __name__ == '__main__':
app = QApplication(sys.argv)
view = QWebEngineView()
timer = QTimer()
timer.timeout.connect(append)
page = view.page()
page.loadFinished.connect(lambda: timer.start(1000))
page.setHtml(html, baseUrl=QUrl('file://')) # <---
view.show()
sys.exit(app.exec_())
推荐阅读
- asp.net-core - 如何从 Asp.net Core 中的查询字符串验证 Azure AD B2C 令牌?
- java - 我正在从后端 spring boot 创建 API,以获取陷入问题的车辆的下拉 makeAndModel 列表
- python-3.x - 正确退出 python 3 脚本
- php - 如何从 PHP 中的字符串中获取特定的字符串值?
- wpf - DataTable 到 Combobox - 未在 UI 中设置 SelectedValue,返回两个值
- java - maven-bundle-plugin 不包括 Import-Package
- salesforce - 视觉力量页面未能在 Lightning 的 EU6 组织中显示
- javascript - 如何使用 Javascript 或 Java 获取 CSV 动态更改的实际数字
- r - 将一行数值变量除以一个常数
- swift - 如何从 Firebase 中仅检索 UID 并在 TableView 中显示