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

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

Сообщение Anonymous »

Я создаю приложение PyQt6, используя QWebEngineView и QWebChannel для отправки уведомлений из JavaScript в Python. Моя настройка отлично работает с локальным 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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