PyQt блокирует эффект наведения при использовании WebEnginePython

Программы на Python
Ответить
Anonymous
 PyQt блокирует эффект наведения при использовании WebEngine

Сообщение Anonymous »

Что делает мое приложение:
Создает окно, в котором загружается мой веб-сайт, поэтому он действует как приложение, а не как сервер. Как будто мне не нужно открывать браузер и переходить на локальный хост и т. д. и т. п. Это просто все в одном приложении, т. е. запустите сервер, откройте приложение, в которое встроен браузер Chrome.

Что я использовал:
  • Python 3.14
  • Библиотеки Python:

    Flask (для серверной части)
  • PyQt (для фрейма приложения)
  • PyQt-Frameless-Window (для пользовательской строки заголовка)
  • Сокет для связи с сервером


Что я пытался сделать:

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

from qframelesswindow import FramelessWindow, StandardTitleBar
from qframelesswindow.webengine import FramelessWebEngineView

class CustomTitleBar(StandardTitleBar):
def __init__(self, parent):
super().__init__(parent)
logo_w = 50
logo_h = 32
self.iconLabel.setFixedSize(logo_w, logo_h)
self.setIcon("AIN_Logo.png", logo_w, logo_h)

class MainWindow(FramelessWindow):
def __init__(self):
super().__init__()
self.setTitleBar(CustomTitleBar(self))
self.setStyleSheet(
'''
background-color: #000835;
color: skyblue;
'''
)

self.hBoxLayout = QHBoxLayout(self)

self.webEngine = FramelessWebEngineView(self)
self.hBoxLayout.setContentsMargins(0, self.titleBar.height(), 0, 0)
self.hBoxLayout.addWidget(self.webEngine)
self.webEngine.setMouseTracking(True)
access_key = "Ba**********"
self.webEngine.load(QUrl(f"http://localhost:5000/?key={access_key}"))
self.resize(1200, 800)

self.titleBar.raise_()
self.showMaximized()
Я попробовал использовать qframelesswindow для создания собственной строки заголовка. Затем я назначил поле (верхнее поле с высотой пользовательской строки заголовка) и развернул webEngine. После этого он загружает мой сайт. Класс MainWindow запускается только после запуска сервера.

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

.pi{
display: inline-block;
width: 13vw;
height: 100%;
border: hsla(0 0 90 / 0.6) solid 2px;
border-radius: 5px;
transition: all 0.2s ease-in-out;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
.pi:hover{
scale:1.1;
}
.overlay{
display: flex;
height: 100%;
width: 100%;
background-color: hsla(0 0 90 / 0.6);
transition: all 0.2s ease-in-out;
opacity: 0;
color: black;
font-size: 140%;
font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
backdrop-filter: blur(3.5px);
}
.pi:hover .overlay{
opacity: 1;
}
.pi:hover{
backdrop-filter: blur(20px);
}
Создается элемент pi div, который при наведении показывает и накладывает на него элемент div внутри него и делает изображение размытым.
но когда я навожу курсор в окне, виден только переход масштаба. Я пытался отладить его, но кажется, что открытие моего веб-сайта в другом браузере (chrome, Edge) работает нормально, без ошибок в консоли.

Дополнительные вещи, которые я пробовал (но не сработало):
  • Отключить ускорение графического процессора (хотя у меня встроенный графический процессор).
  • Вместо этого используйте OpenGL средства рендеринга по умолчанию


Подробнее здесь: https://stackoverflow.com/questions/798 ... -webengine
Ответить

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

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

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

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

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