Как подключить веб-канал PyQt6 к веб-странице и слушать функции js ⇐ Python

Программы на Python
Anonymous
Как подключить веб-канал PyQt6 к веб-странице и слушать функции js

Сообщение Anonymous »

Я создаю приложение PyQt6, используя QWebEngineView и QWebChannel для отправки уведомлений из JavaScript в Python, Windows10 Python 3.13. Моя настройка отлично работает с локальным HTML, но когда я пытаюсь загрузить внешний URL-адрес (например, http://localhost/...), приложение сразу же вылетает с этой ошибкой:

Код: Выделить всё

[ERROR:gpu_channel_manager.cc(977)] ContextResult::kFatalFailure: Failed to create shared context for virtualization
Я пробовал отключить графический процессор с помощью флагов среды:

Код: Выделить всё

import os
os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--disable-gpu --disable-software-rasterizer --ignore-certificate-errors"
os.environ["QT_OPENGL"] = "software"
И настройки для каждой страницы:

Код: Выделить всё

settings = self.browser.settings()
settings.setAttribute(QWebEngineSettings.WebAttribute.Accelerated2dCanvasEnabled, False)
settings.setAttribute(QWebEngineSettings.WebAttribute.WebGLEnabled, False)
settings.setAttribute(QWebEngineSettings.WebAttribute.JavascriptEnabled, True)
Но сбой по-прежнему происходит при загрузке внешних URL-адресов, хотя локальные страницы работают нормально.
Вопросы:
  • Почему происходит сбой QWebEngineView при загрузке внешних URL-адресов даже с отключенным графическим процессором/WebGL?
  • Как я могу безопасно использовать QWebChannel для уведомлений с внешними веб-сайты без сбоя PyQt6?
  • Существуют ли известные способы обхода проблем с контекстом графического процессора QWebEngine в виртуализированных средах или средах Windows?
Будем признательны за любые рекомендации или примеры настроек!

Подробнее здесь: https://stackoverflow.com/questions/798 ... -functions

Вернуться в «Python»