【问题标题】:Using Chrome flags with QtWebEngine (PyQt5)将 Chrome 标志与 QtWebEngine (PyQt5) 一起使用
【发布时间】:2020-09-01 03:06:33
【问题描述】:

对于我的 PyQt5 浏览器项目的开发,我读到 here,通过将 Chrome 标志作为应用程序参数传递,它们将在代码启动时自动传递到 QtWebEngineProcess.exe。我已经尝试过app = QApplication(sys.argv + [--enable-force-dark]),但这不会使 chromium 以暗模式渲染网页(我也尝试了许多标志名称的变体,所以我认为这不是问题)。

我想知道是否可以从 PyQt5 代码中手动调用带有自定义标志的QtWebEngineProcess.exe,方法是继承一个类并覆盖一个函数,并将QtWebEngineView 连接到这个类,比如...("QtWebEngineProcess.exe -[1st flag] -[2nd flag"]) ?

如果上述方法不可行,有没有其他方法可以在QtWebEngineView 中使用带有自定义标志的铬?我正在运行PyQt5.14.2 (Chromium 77), Python 3.8.0, Windows 10

【问题讨论】:

    标签: python pyqt5 chromium qtwebengine google-chrome-flags


    【解决方案1】:

    可以使用以下方法设置铬标志(参见the docs):

    • 作为参数传递给 QApplication:

      args = ["--foo-arg=foo-value", "--bar-arg=bar-value"]
      app = QtWidgets.QApplication(args)
      # or 
      # app = QtWidgets.QApplication(sys.argv + args)
      
    • 通过环境变量QTWEBENGINE_CHROMIUM_FLAGS设置:

      import os
      
      os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--foo-arg=foo-value --bar-arg=bar-value"
      app = QtWidgets.QApplication(sys.argv)
      

    因此您的尝试是正确的,但问题似乎是 Qt WebEngine 并非支持所有 chromium 标志,--enable-force-dark 似乎就是这种情况。在网上搜索我发现this post 提供了另一种选择:--blink-settings=darkMode=4,darkModeImagePolicy=2

    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_())
    

    【讨论】:

      猜你喜欢
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 2018-12-26
      相关资源
      最近更新 更多