Форум сайта python.su
При растяжении окна все виджеты растягиваются, а, допустим, у меня 2 столбца, и я хочу, чтобы левый столбец имел фиксированную ширину, а правый растягивался! Такое реально сделать?
Конструкция: 2 вертикальных бокса находятся внутри горизонтального.
У классов QHBoxLayout() и QVBoxLayout() я не нашёл методов с размерами.
Как быть в таком случае?
Офлайн
Офлайн
Я вижу в *.ui функцию SetFixedSize, но она же вешается на весь виджет!?
Типа:
window.setFixedSize(500,250)
Офлайн
KyrymНу и? Вешайте на каждый виджет внутри вашего QVBoxLayout, или сгруппируйте их все в контейнере вроде Frame
но она же вешается на весь виджет!
Офлайн
Обратил внимание, что в Вашем примере сами кнопки слева имеют фиксированную ширину, но сам левый столбец всё равно растягивается, т.е. данное решение не верно.
Если я правильно понимаю, надо сделать 2 виджета с абсолютным позиционированием и в правый виджет каким-то образом поставить растяжение по ширине и высоте?
В общем, вопрос открыт.
Офлайн
А какой виджет у вас используется в качестве левого столбца? Поступите с ним вот так:
QFrame.setFixedWidth(100)
Офлайн
В качестве левого столбца используется QVBoxLayout().
Мне кажется, если зафиксировать QFrame, вставленный в вертикальный бокс, то VBox всё-равно будет растягиваться.
Для себя данный вопрос я решил использованием сетки. Делаю родителем QGridLayout. В его первый столбец загоняю VBox, а справа объединяю примерно 4 столбца под QScrollArea. И получается очень даже хорошо. Левый столбец, конечно, всё-равно растягивается, но уже совсем слабо.
Офлайн