crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Сжать окно
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) *
Попробуй у лайота сделать
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) *
Фиксировать размер ГрупБоксов (в данный период, когда условия сошлись, самым первым пунктом), сделав его минимум, к примеру

нужно лишь сжимать до минимума

Цитата(ufna @ 8.8.2009, 17:20) *
3. Сжимаем виджет лапками до нужного размера, который будет как раз теперь минимумом

в этом и вопрос - как ?

Цитата(ufna @ 8.8.2009, 17:20) *
4. Делаем размеры груп боксов не фиксированными

тоесть сначала фиксируем, сжимаем, потом разжимаем ?

Цитата(ufna @ 8.8.2009, 17:20) *
Само окно поджиматься не будет, имхо. Слишком много ограничений, а практического применения в массовом использовании оно не имеет.


а чем оно отличается от обычного widget-а ,
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 8.8.2009, 16:41
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(zss @ 8.8.2009, 17:38) *
Цитата(ufna @ 8.8.2009, 17:20) *
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) *
Попробуй w.resize( w.minimumSize() );

вроде работает, только при этом и по горизонтали ужалось, а хотелось только по вертикали
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 9.8.2009, 20:05
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(zss @ 9.8.2009, 20:58) *
Цитата(BRE @ 8.8.2009, 17:41) *
Попробуй w.resize( w.minimumSize() );

вроде работает, только при этом и по горизонтали ужалось, а хотелось только по вертикали

Тогда так:
w.resize( w.size().width(), w.minumimSize().height() );
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
zss
  опции профиля:
сообщение 9.8.2009, 20:08
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 112
Регистрация: 9.6.2009
Пользователь №: 815

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(BRE @ 9.8.2009, 21:05) *
w.resize( w.size().width(), w.minumimSize().height() );


я сначала поставил HSizePolycy = Fixed. Навига вообще нужна политика если она не работает
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
quarz
  опции профиля:
сообщение 30.9.2010, 18:41
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 3.11.2009
Пользователь №: 1202

Спасибо сказали: 5 раз(а)




Репутация:   0  


Тоже долго возился с этим вопросом, единственное рабочее решение, которое нашел - это устанавливать размеры окна жестко
setMinimumSize(size)
setMaximumSize(size)

Конечно, это годится только для не-sizeable окон.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 4.12.2020, 7:33