Kyrym
Янв. 31, 2017 09:20:37
При растяжении окна все виджеты растягиваются, а, допустим, у меня 2 столбца, и я хочу, чтобы левый столбец имел фиксированную ширину, а правый растягивался! Такое реально сделать?
Конструкция: 2 вертикальных бокса находятся внутри горизонтального.
У классов QHBoxLayout() и QVBoxLayout() я не нашёл методов с размерами.
Как быть в таком случае?
FishHook
Янв. 31, 2017 09:53:29
Да все просто
Kyrym
Янв. 31, 2017 10:18:43
Я вижу в *.ui функцию SetFixedSize, но она же вешается на весь виджет!?
Типа:
window.setFixedSize(500,250)
Чистый код, увы, я посмотреть не могу.
FishHook
Янв. 31, 2017 10:28:27
Kyrym
но она же вешается на весь виджет!
Ну и? Вешайте на каждый виджет внутри вашего QVBoxLayout, или сгруппируйте их все в контейнере вроде Frame
Kyrym
Фев. 1, 2017 12:53:48
Обратил внимание, что в Вашем примере сами кнопки слева имеют фиксированную ширину, но сам левый столбец всё равно растягивается, т.е. данное решение не верно.
Если я правильно понимаю, надо сделать 2 виджета с абсолютным позиционированием и в правый виджет каким-то образом поставить растяжение по ширине и высоте?
В общем, вопрос открыт.
Metallikus
Фев. 8, 2017 10:03:44
А какой виджет у вас используется в качестве левого столбца? Поступите с ним вот так:
QFrame.setFixedWidth(100)
Kyrym
Март 3, 2017 12:59:42
В качестве левого столбца используется QVBoxLayout().
Мне кажется, если зафиксировать QFrame, вставленный в вертикальный бокс, то VBox всё-равно будет растягиваться.
Для себя данный вопрос я решил использованием сетки. Делаю родителем QGridLayout. В его первый столбец загоняю VBox, а справа объединяю примерно 4 столбца под QScrollArea. И получается очень даже хорошо. Левый столбец, конечно, всё-равно растягивается, но уже совсем слабо.