Как задать величину отступа по вертикали между контейнерами?
В главном контейнере main_box я создаю четыре пустых контейнера:
- Один контейнер
big_boxвысотой 200px - Три контейнера
little_box(в цикле) высотой 50px
Я хочу выставить значения отступов по вертикали между этими контейнерами:
H - это расстояние между big_box и самым верхним little_box. Оно должно быть постоянно и равно 40px.
L - это расстояние между контейнерами little_box. Оно должно быть постоянно и равно 20px.
Очень важно! -> При этом мне нужно оставить big_box вверху контейнера main_box.
Пожалуйста, помогите расположить виджеты в контейнере
from PyQt5 import QtCore, QtWidgets, QtGui
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent = None):
super().__init__(parent)
main_box = QtWidgets.QVBoxLayout(self)
container = QtWidgets.QWidget()
container.setStyleSheet('background: #1F252F;')
container.setFixedHeight(200)
big_box = QtWidgets.QHBoxLayout(container)
main_box.addWidget(container, alignment = QtCore.Qt.AlignTop)
for i in range(0, 3):
container = QtWidgets.QWidget()
container.setStyleSheet('background-color: #1F252F;')
container.setFixedHeight(50)
little_box = QtWidgets.QHBoxLayout(container)
main_box.addWidget(container)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.setWindowTitle(' ')
window.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
from PyQt5 import QtCore, QtWidgets, QtGui
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent = None):
super().__init__(parent)
main_box = QtWidgets.QVBoxLayout(self)
container = QtWidgets.QWidget()
container.setStyleSheet('background: #FF252F;')
container.setFixedHeight(200)
big_box = QtWidgets.QHBoxLayout(container)
main_box.addWidget(container, alignment = QtCore.Qt.AlignTop)
main_box.addSpacing(40) # +++
start = 0 # +++
end = 3 # +++
for i in range(start, end): # (0, 3):
container = QtWidgets.QWidget()
container.setStyleSheet('background-color: #1F25FF;')
container.setFixedHeight(50)
little_box = QtWidgets.QHBoxLayout(container)
main_box.addWidget(container)
if i != end-1: # +++
main_box.addSpacing(20) # +++
main_box.addStretch(1) # +++
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.setWindowTitle(' ')
window.show()
sys.exit(app.exec_())

