Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
zss |
7.8.2009, 20:31
Сообщение
#1
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 112 Регистрация: 9.6.2009 Пользователь №: 815 Спасибо сказали: 0 раз(а) Репутация: 0
|
есть окно. На нем QVerticalLayout. На нем 4 QGroupBox.
При определенных условиях делаю невидимым один из QGroupBox. В результате - оставшиеся 3 занимают все свободное пространство. А мне нужно чтоб окно сжалось до минимального размера. Выставил для окна SizePolicy->VSizeType = Maximum - нифига не помогло. Единственное что помогло это выставление maximum и для окна, и для layout и для QGroupBox. То есть всем компонентам нужно выставлять. Я думал что окно само может поджаться. Может еще какое свойство есть ? |
|
|
|
|
panter_dsd |
8.8.2009, 9:31
Сообщение
#2
|
![]() Жаждущий знаний ![]() ![]() ![]() Группа: Участник Сообщений: 254 Регистрация: 1.1.2009 Из: Санкт-Петербург Пользователь №: 474 Спасибо сказали: 32 раз(а) Репутация: 3
|
Попробуй у лайота сделать
setSizeConstraint(QLayout::SetFixedSize); |
|
|
|
|
zss |
8.8.2009, 13:18
Сообщение
#3
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 112 Регистрация: 9.6.2009 Пользователь №: 815 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(panter_dsd @ 8.8.2009, 10:31) Link Попробуй у лайота сделать setSizeConstraint(QLayout::SetFixedSize); нифига - тот же эффект. Сообщение отредактировал zss - 8.8.2009, 14:11 |
|
|
|
|
ufna |
8.8.2009, 16:20
Сообщение
#4
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 362 Регистрация: 24.5.2008 Из: Курган/СПб Пользователь №: 182 Спасибо сказали: 29 раз(а) Репутация: 5
|
Мои мысли по данному поводу:
1. Фиксировать размер ГрупБоксов (в данный период, когда условия сошлись, самым первым пунктом), сделав его минимум, к примеру 2. Убираем нужный бокс 3. Сжимаем виджет лапками до нужного размера, который будет как раз теперь минимумом 4. Делаем размеры груп боксов не фиксированными Само окно поджиматься не будет, имхо. Слишком много ограничений, а практического применения в массовом использовании оно не имеет. Сообщение отредактировал ufna - 8.8.2009, 16:20 |
|
|
|
|
zss |
8.8.2009, 16:38
Сообщение
#5
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 112 Регистрация: 9.6.2009 Пользователь №: 815 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(ufna @ 8.8.2009, 17:20) Link Фиксировать размер ГрупБоксов (в данный период, когда условия сошлись, самым первым пунктом), сделав его минимум, к примеру нужно лишь сжимать до минимума Цитата(ufna @ 8.8.2009, 17:20) Link 3. Сжимаем виджет лапками до нужного размера, который будет как раз теперь минимумом в этом и вопрос - как ? Цитата(ufna @ 8.8.2009, 17:20) Link 4. Делаем размеры груп боксов не фиксированными тоесть сначала фиксируем, сжимаем, потом разжимаем ? Цитата(ufna @ 8.8.2009, 17:20) Link Само окно поджиматься не будет, имхо. Слишком много ограничений, а практического применения в массовом использовании оно не имеет. а чем оно отличается от обычного widget-а , |
|
|
|
|
BRE |
8.8.2009, 16:41
Сообщение
#6
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(zss @ 8.8.2009, 17:38) Link Цитата(ufna @ 8.8.2009, 17:20) Link 3. Сжимаем виджет лапками до нужного размера, который будет как раз теперь минимумом в этом и вопрос - как ? Попробуй w.resize( w.minimumSize() ); |
|
|
|
|
zss |
9.8.2009, 19:58
Сообщение
#7
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 112 Регистрация: 9.6.2009 Пользователь №: 815 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(BRE @ 8.8.2009, 17:41) Link Попробуй w.resize( w.minimumSize() ); вроде работает, только при этом и по горизонтали ужалось, а хотелось только по вертикали |
|
|
|
|
BRE |
9.8.2009, 20:05
Сообщение
#8
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(zss @ 9.8.2009, 20:58) Link Цитата(BRE @ 8.8.2009, 17:41) Link Попробуй w.resize( w.minimumSize() ); вроде работает, только при этом и по горизонтали ужалось, а хотелось только по вертикали Тогда так:
|
|
|
|
|
zss |
9.8.2009, 20:08
Сообщение
#9
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 112 Регистрация: 9.6.2009 Пользователь №: 815 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(BRE @ 9.8.2009, 21:05) Link w.resize( w.size().width(), w.minumimSize().height() ); я сначала поставил HSizePolycy = Fixed. Навига вообще нужна политика если она не работает |
|
|
|
|
quarz |
30.9.2010, 18:41
Сообщение
#10
|
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0
|
Тоже долго возился с этим вопросом, единственное рабочее решение, которое нашел - это устанавливать размеры окна жестко
Конечно, это годится только для не-sizeable окон. |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 6:04 |