PyQt5 QWebEngineView мигает при изменении размера родительского QFrame, как это предотвратить?Html

Программисты Html
Ответить
Anonymous
 PyQt5 QWebEngineView мигает при изменении размера родительского QFrame, как это предотвратить?

Сообщение Anonymous »

У меня есть приложение PyQt5 с одним QWebEngineView внутри QFrame. Рамка изначально маленькая (150×150), и когда я нажимаю кнопку, я изменяю ее размер до большего размера (300×300). Я хочу, чтобы веб-контент масштабировался вместе с фреймом.
Вот минимальный воспроизводимый пример:

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

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QFrame
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import Qt

class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.resize(600, 500)
self.is_big = False

layout = QVBoxLayout(self)
layout.setAlignment(Qt.AlignCenter)

self.box = QFrame()
self.box.setStyleSheet("border: 2px solid black;")
self.box.setFixedSize(150, 150)
self.box_layout = QVBoxLayout(self.box)
self.box_layout.setContentsMargins(0, 0, 0, 0)

self.web_widget = QWebEngineView()
self.web_widget.setAttribute(Qt.WA_TranslucentBackground, True)
self.web_widget.setStyleSheet("background: transparent;")
self.web_widget.setHtml("""


Hello World


""")
self.box_layout.addWidget(self.web_widget)

self.button = QPushButton("Toggle Size")
self.button.clicked.connect(self.toggle_size)

layout.addWidget(self.box)
layout.addWidget(self.button)

def toggle_size(self):
if self.is_big:
self.box.setFixedSize(150, 150)
else:
self.box.setFixedSize(300, 300)
self.is_big = not self.is_big

app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Проблема:

При нажатии кнопки QWebEngineView кратковременно мигает в верхнем левом углу перед правильным изменением размера.
Вопрос:

Как предотвратить мигание QWebEngineView при изменении размера родительского фрейма? Есть ли лучший подход к масштабированию содержимого и плавному изменению размера контейнера в PyQt5?

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

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

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

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

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

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