【问题标题】:Qt WebEngine seems to be initializedQt WebEngine 似乎已初始化
【发布时间】:2019-10-03 04:42:10
【问题描述】:

当我运行我的 Qt 应用程序时,我会收到消息

Qt WebEngine 似乎是从插件初始化的。请设置 Qt::AA_ShareOpenGLContexts 之前使用 QCoreApplication::setAttribute 正在构建 QGuiApplication。

无论是否将其转储到终端,该应用程序都可以正常运行。我似乎无法找到根本原因或真正理解此消息试图告诉我的内容。这条消息是什么意思,我该如何解决?

【问题讨论】:

标签: python pyside2 qtwebengine


【解决方案1】:

使用 PySide6 而不是 PySide2 解决了我在 python 3.9 和 QT 5.15 上的问题,如果可以的话

【讨论】:

    【解决方案2】:

    这可以通过在生成 QApplication 之前设置 AA_ShareOpenGLContexts 来解决。

    看下面使用 PySide2 的例子

      from PySide2 import QtCore, QtWidgets
    
      if __name__ == '__main__':
          QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts)
          qt_app = QtWidgets.QApplication(sys.argv)
    

    注意:正如问题中的回复所述:使用 PyQt5 时,请查看 https://bugreports.qt.io/browse/QTBUG-51379 ...

    【讨论】:

    • 即使添加了这一行,问题仍然存在。
    • 该消息在 QWebEngineView 被导入之后,甚至在应用程序创建之前出现。所以这条线会在问题已经发生之后出现。
    • 谢谢 -> 通常 Qt 会自动在 'main' 中创建 -> app = QApplication([]) -> 所以当我按照你的建议进行更改时,错误就消失了。我们选择 PySide2 的主要原因
    • 我在使用 pyside6 时出现问题,只需将导入行调整为from PySide6.QtCore import QFile, QCoreApplication, Qt 并从函数调用中省略QtCore 命名空间
    猜你喜欢
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多