PyQt5. Изменение глубины виджета
Как мне изменить глубину отрисовки виджета, чтобы я мог отрисовывать один виджет поверх другого?
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Пожалуйста, всегда публикуйте минимально-воспроизводимый пример. Это позволит правильно понять ваш вопрос и дать вам правильные рекомендации.
Если я вас правильно понял, то на самом деле все просто,
чтобы отрисовать виджет B поверх виджета A ,
сделайте родителем виджета B виджет A и все. Попробуйте:
import sys
from PyQt5.Qt import *
class Example(QWidget):
def __init__(self):
super().__init__()
self.setStyleSheet("background-color: #7ff;")
self.label_1 = QLabel(
"label_1",
styleSheet="background-color: #77f; font-size: 170pt;"
)
self.label_2 = QLabel(
"<i style='color: #f77;'>label_2</i>",
self.label_1, # !!! label_1
alignment=Qt.AlignCenter,
styleSheet="font-size: 120pt; background: transparent;"
)
self.label_3 = QLabel(
"<b style='color: #5f5;'>label_3</b>",
self.label_2, # !!! label_2
alignment=Qt.AlignCenter,
styleSheet="font-size: 70pt; background: transparent;"
)
layout = QGridLayout(self)
layout.addWidget(self.label_1, 0, 0, alignment=Qt.AlignCenter)
def resizeEvent(self, event):
self.label_2.resize(self.label_1.size())
self.label_3.resize(self.label_1.size())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
