@nvlveu

Как добавить виджет в QBoxLayout так, чтобы он не отодвигал другие виджеты?

Здравствуйте. Нужно добавить виджет на Q(H \ V)BoxLayout так, чтобы он не отодвигал другие виджеты. Например, на QVBoxLayout у нас есть два виджета, полностью занимающие слой:
60729e6fdfc62566896946.png

Поверх них на этот же слой нужно добавить QWidget(на фотографии это красный полупрозрачный виджет) с растяжением на весь QVBoxLayout, но так, чтобы предыдущие виджеты не изменялись ни в размере, ни в расположении:
60729ebb568d4461455727.png

Но вот, как получается у меня:
60729ef06a6d5676175483.png
  • Вопрос задан
  • 361 просмотр
Пригласить эксперта
Ответы на вопрос 1
sanya84
@sanya84
Фанатик Python 3
Как то так.
import sys
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QApplication


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):
        self.setGeometry(300, 200, 600, 400)
        self.setWindowTitle('Пример')
        
        hbox_layout = QVBoxLayout()
        
        red_widget = QWidget()
        red_widget.setStyleSheet("background: green;")
        
        green_widget = QWidget()
        green_widget.setStyleSheet("background: green;")
        
        hbox_layout.addWidget(red_widget)
        hbox_layout.addWidget(green_widget)
        
        self.setLayout(hbox_layout)
        
        transparent_widget = QWidget(self)
        transparent_widget.setGeometry(0, 0, 600, 400)
        transparent_widget.setStyleSheet("background-color: rgba(117, 190, 218, 0.4);")
        

if __name__ == '__main__':
    app = QApplication(sys.argv)
    example = Example()
    example.show()
    sys.exit(app.exec_())
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы