So verbinden Sie den PyQt6-Webkanal mit einer Webseite und hören sich die JS-Funktionen anPython

Python-Programme
Anonymous
 So verbinden Sie den PyQt6-Webkanal mit einer Webseite und hören sich die JS-Funktionen an

Post by Anonymous »

Ich erstelle eine PyQt6-Anwendung mit QWebEngineView und QWebChannel, um Benachrichtigungen von JavaScript an Python zu senden. Mein Setup funktioniert gut mit lokalem HTML, aber wenn ich versuche, eine externe URL zu laden (z. B. http://localhost/...), stürzt die App sofort mit dieser Fehlermeldung ab:

Code: Select all

[ERROR:gpu_channel_manager.cc(977)] ContextResult::kFatalFailure: Failed to create shared context for virtualization
Ich habe versucht, die GPU mit Umgebungsflags zu deaktivieren:

Code: Select all

import os
os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--disable-gpu --disable-software-rasterizer --ignore-certificate-errors"
os.environ["QT_OPENGL"] = "software"
Und pro Seite Einstellungen:

Code: Select all

settings = self.browser.settings()
settings.setAttribute(QWebEngineSettings.WebAttribute.Accelerated2dCanvasEnabled, False)
settings.setAttribute(QWebEngineSettings.WebAttribute.WebGLEnabled, False)
settings.setAttribute(QWebEngineSettings.WebAttribute.JavascriptEnabled, True)
Aber der Absturz tritt immer noch auf, wenn externe URLs geladen werden, obwohl lokale Seiten einwandfrei funktionieren.
Fragen:
  • Warum stürzt QWebEngineView ab, wenn externe URLs geladen werden, obwohl GPU/WebGL deaktiviert ist?
  • Wie kann ich QWebChannel sicher für Benachrichtigungen mit externen Websites verwenden? ohne PyQt6 zum Absturz zu bringen?
  • Gibt es bekannte Workarounds für QWebEngines GPU-Kontextprobleme in virtualisierten oder Windows-Umgebungen?
Jede Anleitung oder Beispiel-Setups wären dankbar!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post