PySide Qt: автоматический вертикальный рост для виджета TextEdit и расстояние между виджетами в вертикальной компоновке

enter image description here

Мне нужно решить две проблемы с моим виджетом выше.

I'd like to be able to define the amount of space put between the post widgets shown in the image (they look fine as is, but I wanna know it's done). I'd like to grow the text edits vertically based on the amount of text they contain without growing horizontally.

Для 1 код, который заполняет виджеты, выглядит следующим образом:

self._body_frame = QWidget()
self._body_frame.setMinimumWidth(750)
self._body_layout = QVBoxLayout()
self._body_layout.setSpacing(0)
self._post_widgets = []
for i in range(self._posts_per_page):
    pw = PostWidget()
    self._post_widgets.append(pw)
    self._body_layout.addWidget(pw)

    self._body_frame.setLayout(self._body_layout)

SetSpacing (0) не сближает, однако SetSpacing (100) увеличивает его.

edit

(для вопроса 2) Я не упомянул об этом, но я хочу, чтобы родительский виджет имел вертикальную полосу прокрутки.

Я ответил на свой вопрос, но он многословный, а причина и аффект основаны. Правильно написанный ответ в стиле учебника для решения обоих вопросов получает награду: D

edit 2

Используя мой собственный ответ ниже, я решил проблему. Я сейчас приму мой собственный ответ.

enter image description here

Ответы на вопрос(2)

Ваш ответ на вопрос