Вот минимальный воспроизводимый пример:
Код: Выделить всё
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
Мобильная версия