Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 31, 2017 09:20:37

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt4 | Задать ширину бокса?

При растяжении окна все виджеты растягиваются, а, допустим, у меня 2 столбца, и я хочу, чтобы левый столбец имел фиксированную ширину, а правый растягивался! Такое реально сделать?
Конструкция: 2 вертикальных бокса находятся внутри горизонтального.
У классов QHBoxLayout() и QVBoxLayout() я не нашёл методов с размерами.
Как быть в таком случае?

Офлайн

#2 Янв. 31, 2017 09:53:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt4 | Задать ширину бокса?

Да все просто



Прикреплённый файлы:
attachment untitled.zip (5,4 KБ)

Офлайн

#3 Янв. 31, 2017 10:18:43

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt4 | Задать ширину бокса?

Я вижу в *.ui функцию SetFixedSize, но она же вешается на весь виджет!?
Типа:

 window.setFixedSize(500,250)

Чистый код, увы, я посмотреть не могу.

Офлайн

#4 Янв. 31, 2017 10:28:27

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt4 | Задать ширину бокса?

Kyrym
но она же вешается на весь виджет!
Ну и? Вешайте на каждый виджет внутри вашего QVBoxLayout, или сгруппируйте их все в контейнере вроде Frame



Офлайн

#5 Фев. 1, 2017 12:53:48

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt4 | Задать ширину бокса?

Обратил внимание, что в Вашем примере сами кнопки слева имеют фиксированную ширину, но сам левый столбец всё равно растягивается, т.е. данное решение не верно.

Если я правильно понимаю, надо сделать 2 виджета с абсолютным позиционированием и в правый виджет каким-то образом поставить растяжение по ширине и высоте?

В общем, вопрос открыт.

Офлайн

#6 Фев. 8, 2017 10:03:44

Metallikus
Зарегистрирован: 2014-11-26
Сообщения: 39
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4 | Задать ширину бокса?

А какой виджет у вас используется в качестве левого столбца? Поступите с ним вот так:

 QFrame.setFixedWidth(100)

Офлайн

#7 Март 3, 2017 12:59:42

Kyrym
Зарегистрирован: 2016-12-28
Сообщения: 225
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt4 | Задать ширину бокса?

В качестве левого столбца используется QVBoxLayout().
Мне кажется, если зафиксировать QFrame, вставленный в вертикальный бокс, то VBox всё-равно будет растягиваться.

Для себя данный вопрос я решил использованием сетки. Делаю родителем QGridLayout. В его первый столбец загоняю VBox, а справа объединяю примерно 4 столбца под QScrollArea. И получается очень даже хорошо. Левый столбец, конечно, всё-равно растягивается, но уже совсем слабо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version