Как убрать фон виджета QLabel?

Мой код наполняет цветной контейнер box тремя виджетами - label1, label2 и picture.

label1 и label2 являются проcтыми надписями, а picture - изображение, которое я получаю с помощью класса MyPicture. Когда окно приложения становится слишком маленьким, label1 и label2 оказываются поверх picture. Мне необходимо оставить эту возможность, так контейнер становится компактнее при необходимости. Т.е. задать минимальный размер контейнера больше, чем размер картинки я не могу.

Сейчас надписи label1 и label2 обладают собственным цветным фоном:

введите сюда описание изображения

Мне нужно как-то избавиться от этого фона, чтобы надписи выглядели так:

введите сюда описание изображения

Фон цветного контейнера должен остаться прежним, надписи должны продолжить менять свое местоположение, при изменении размера окна. Под надписями label1 и label2 в контейнере будут находиться и другие виджеты, трогать которые мне бы не хотелось.

Пожалуйста, подскажите, как убрать фон label1 и label2?

from PyQt5 import QtCore, QtWidgets, QtGui, QtMultimedia

class MyPicture(QtWidgets.QLabel):
    def __init__(self, picture, x, *args, **kwargs):
        super(MyPicture, self).__init__(*args, **kwargs)

        self.setFixedSize(x, x)

        self.setPicture(picture, x)

    def setPicture(self, picture, x):
        self.setPixmap(QtGui.QPixmap(picture).scaled(x, x, QtCore.Qt.KeepAspectRatio))

class MyWindow(QtWidgets.QWidget):
    def __init__(self, parent = None):
        super().__init__(parent)

        main_box = QtWidgets.QHBoxLayout(self)

        container = QtWidgets.QWidget()
        container.setStyleSheet('background: #2A303D;')
        container.setMinimumSize(250, 300)
        container.setMaximumWidth(300)                               

        main_box.addWidget(container)
        box = QtWidgets.QVBoxLayout(container)
        box.setContentsMargins(0, 0, 0, 0)

        picture = picture = MyPicture('im.png', 300)       
        box.addWidget(picture, alignment = QtCore.Qt.AlignCenter)

        label1 = QtWidgets.QLabel('Text number 1')
        label1.setStyleSheet(qss)
        box.addWidget(label1, alignment = QtCore.Qt.AlignCenter)

        label2 = QtWidgets.QLabel('Text number 2')
        label2.setStyleSheet(qss)
        box.addWidget(label2, alignment = QtCore.Qt.AlignCenter)


        box.setStretch(0, 0)
        box.setStretch(1, 2)
        box.setStretch(2, 2)

qss = '''QLabel {
         color: red;
         font: bold 16px;
         border: none;
         margin: 0px;
         padding: 0px;
      }'''

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.setWindowTitle(' ')
    window.show()
    sys.exit(app.exec_())

Ответы (1 шт):

Автор решения: gil9red

Изменение стиля родительского виджета меняет стиль детей:

container.setStyleSheet('background: #2A303D;')

Поэтому, укажите детям другой задний фон:

qss = '''QLabel {
         color: red;
         font: bold 16px;
         background: transparent;
         border: none;
         margin: 0px;
         padding: 0px;
      }'''
→ Ссылка