提问人:Thomas 提问时间:2/23/2023 最后编辑:Thomas 更新时间:2/24/2023 访问量:206
使用 QtWebEngine (PyQt5) 在深色模式下渲染页面
Render pages in dark mode with QtWebEngine (PyQt5)
问:
我正在尝试使用QtWebEngine以深色模式呈现网站。我不知道该怎么做,我发现了这个 Stack Overflow 问题,它似乎可以解决我的问题。这个人试图使用chrome标志,他们有一个公认的答案,使用了这些标志。以下是接受的答案提供的代码:
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets
if __name__ == "__main__":
import os
import sys
os.environ[
"QTWEBENGINE_CHROMIUM_FLAGS"
] = "--blink-settings=darkMode=4,darkModeImagePolicy=2"
app = QtWidgets.QApplication(sys.argv)
# or
# args = sys.argv + ["--blink-settings=darkMode=4,darkModeImagePolicy=2"]
# app = QtWidgets.QApplication(sys.argv + args)
view = QtWebEngineWidgets.QWebEngineView()
view.load(QtCore.QUrl("https://www.google.com"))
view.show()
sys.exit(app.exec_())
看起来使用的操作系统确实不是 Windows(这是我正在使用的),所以这可能是问题所在。此代码不再起作用,并在没有深色模式的情况下呈现网页,如下所示:
在写这个问题时,我还遇到了另一个 Stack Overflow 问题,问的和我一样。这个问题目前没有答案,并且已经在这个网站上存在了 6 个月。有人对如何做到这一点有任何想法吗?我将不胜感激。
编辑:
在询问 ChatGPT 看看它是否有帮助后,我得到了以下代码(是的,我知道 ChatGPT 并不总是正确的并且在这个网站上被禁止,我假设这个禁令是为了回答问题):
from PyQt5.QtCore import Qt, QUrl
from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtWebKit import QWebSettings
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebKitWidgets import QWebView
app = QApplication([])
# Enable the Force Dark Mode flag
settings = QWebSettings.globalSettings()
settings.setAttribute(QWebSettings.ForceDarkColors, True)
# Create the web browser
browser = QWebView()
browser.load(QUrl("https://www.google.com/"))
# Set the dark color palette for the web browser
palette = QPalette()
palette.setColor(QPalette.Window, QColor(53, 53, 53))
palette.setColor(QPalette.WindowText, Qt.white)
browser.setPalette(palette)
# Show the web browser
browser.show()
# Run the application event loop
app.exec_()
这段代码给了我错误。在查找此错误的解决方案后,我发现了这个 Stack Overflow 问题。本质上:ModuleNotFoundError: No module named 'PyQt5.QtWebKit'
QtWebKit 在 Qt 5.5 的上游被弃用,并在 5.6 中被删除。
如果生成的这段代码使用 chrome 标志,那么我假设它们不能再用于实现这一点是否正确?
答: 暂无答案
评论