Блог

о компьютерах и программах

Простой способ сделать автоматическое растяжение виджетов  при изменении размера окнаПишу данную статью, так как сам столкнулся с данным вопросом и нормального ответа не смог найти. Вроде и ответов много, но понятнее от них не становится.

Суть истории в том, что не мог разобраться с автоматическим растяжением виджетов в PyQt при помощи Qt Designer. У меня было несколько QTableView на разных слоях Layout, и не получалось сделать так, чтобы при изменении размера окна таблицы тянулись бы за краем окна. Советов в интернете много, но все они не отвечали на мои вопросы, и у меня ничего не получалось. Позже, посмотрев несколько видео, я разобрался и сейчас коротко объясню, как решил проблему.

В общем, сначала объясню, как это сделать с нуля, когда у вас объекты не размещены на форме. 

На первом скриншоте размещаем три кнопки, далее выделяем главное окно, то есть объект MainWindow. После этого необходимо нажать кнопку "Скомпоновать по горизонтали" или "Скомпоновать по вертикали".

Кнопки "Скомпоновать по горизонтали" и "Скомпоновать по вертикали"При нажатии на одну из данных кнопок объекты, размещенные в MainWindow станут скомпонованы и будут растягиваться при изменении размера окна.

Скомпоновонный вариант с тремя кнопкамиЛично мне после просмотра этой теории стало понятно, как мою проблему можно решить. Я выделил общий слой Layout, нажал правой кнопкой мыши и выбрал пункт "удалить компоновщик". После этого нажал кнопку "Скомпоновать по горизонтали" и получил необходимый результат.