Russian Qt Forum
Февраль 23, 2012, 03:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: размеры виджета с Layout  (Прочитано 220 раз)
spirits25
Чайник
*
Offline Offline

Сообщений: 62


« : Январь 26, 2012, 12:39 »

Всем привет.

Есть виджет, наследуемый от QWidget, который находится в QScrollArea.
У этого виджета есть QGridLayout. В неё помещается неизвестное количество разных виджетов
Среди этих виджетов есть те, которые надо прятать и показывать по нажатию кнопки.
Вопрос: как сделать, чтобы мой виджет с Layout'ом не сжимал внутренние виджеты при появлении скрытых? или чтобы от не оставлял кучу свободного места после скрытии некоторых внутренних?

Другими словами, как сделать, чтобы виджет со слоем переопределял свой размер, учитывая сколько сейчас на нём отображено элементов?

Спасибо.
« Последнее редактирование: Январь 26, 2012, 12:47 от spirits25 » Записан
interv
Новичок

Offline Offline

Сообщений: 30


« Ответ #1 : Январь 26, 2012, 13:57 »

Поставь VerticalSpicer в дизайнере под виджет, он его подожмет наверх. У виджета свойство sizePolicy вертикальное поменяй. Также виджеты которые ты помещаеш тоже sizePolicy устанавливай...
« Последнее редактирование: Январь 26, 2012, 14:00 от interv » Записан
spirits25
Чайник
*
Offline Offline

Сообщений: 62


« Ответ #2 : Январь 26, 2012, 14:23 »

Цитировать
Поставь VerticalSpicer в дизайнере под виджет, он его подожмет наверх.
Как это строчкой кода сделать?
Записан
spirits25
Чайник
*
Offline Offline

Сообщений: 62


« Ответ #3 : Январь 26, 2012, 14:34 »

сделал так
Код:
       self.gridLayout.addItem(QtGui.QSpacerItem( 10, 200, \
                QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Maximum ), x, y, 1, 2)
Уже лучше, но виджеты немного немного сдвигаются. Что с этим можно сделать?

Или может есть другой способ сделать аля расширенные настройки?
То есть нажимаешь на определённый виджет, открываются дополнительные виджеты, нажимаешь ещё раз - они убираются.
« Последнее редактирование: Январь 26, 2012, 14:37 от spirits25 » Записан
spirits25
Чайник
*
Offline Offline

Сообщений: 62


« Ответ #4 : Январь 26, 2012, 14:54 »

Всё, спасибо за подсказку.
Вот это:
Код:
QtGui.QSpacerItem( 0, 0, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding )
Решило проблему=)
Первые числа любые, но лучше меньше=)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.049 секунд. Запросов: 22.