crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> [РЕШЕНО]minimumSize==0 if visible==false или как сделать виджет свсем не видимым
greh
  опции профиля:
сообщение 1.2.2011, 17:28
Сообщение #1


Студент
*

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

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




Репутация:   0  


На главном виджете есть 2 виджета, которые должны полностью скрываться. setvisible(false) действительно делает их не видимыми но они по прежнему занимают определённое место т.к. в них тоже есть виджеты. В итоге resize(minimumsize()) не даёт нужного эффекта. Теперь наглядно:



"Состояние 3" должно быть эквивалентно "Состоянию 1". Аналогично с кнопкой расписание....

Эксперименты с minimumSizeHint не привели ни к чему хорошему.

StudentWidget на SourceForge.net тут есть бинарики для того чтобы просто посмотреть и исходники для тех кто желает помочь. Парралельно хочу пригласить вас поучавствовать в этом проекте.

Сообщение отредактировал greh - 1.2.2011, 20:08
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
breeve
  опции профиля:
сообщение 1.2.2011, 17:34
Сообщение #2


Участник
**

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

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




Репутация:   1  


а просто сделать resize() нельзя? подобрать размер и уменьшить при 3 состоянии.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Obey-Kun
  опции профиля:
сообщение 1.2.2011, 17:35
Сообщение #3


Студент
*

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

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




Репутация:   0  


Идеологически лучше делать резиновые виджеты. Юзер сам должен выбирать, какой ширины окно должно быть. Погуглите руководства по HIG.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
greh
  опции профиля:
сообщение 1.2.2011, 17:46
Сообщение #4


Студент
*

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

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




Репутация:   0  


Цитата(breeve @ 1.2.2011, 19:34) *
а просто сделать resize() нельзя? подобрать размер и уменьшить при 3 состоянии.


Не помогает.


Цитата(Obey-Kun @ 1.2.2011, 19:35) *
Идеологически лучше делать резиновые виджеты. Юзер сам должен выбирать, какой ширины окно должно быть. Погуглите руководства по HIG.


Я сделал так чтобы при любом изменении виджет стремился занимать как можно меньше места. А юзерам которые будут им посльзоваться(возможно) всё равно. "Тестовая группа" приняла данное решение на ура.

Сообщение отредактировал greh - 1.2.2011, 17:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 1.2.2011, 18:18
Сообщение #5


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

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


greh, попробуй после перехода в третье состояние сделать
layout()->activate(); // по идее это должно заставить компоновщик пересчитать геометрию формы
resize(minimumSizeHint());



Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
greh
  опции профиля:
сообщение 1.2.2011, 18:33
Сообщение #6


Студент
*

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

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




Репутация:   0  


Цитата(igor_bogomolov @ 1.2.2011, 20:18) *
greh, попробуй после перехода в третье состояние сделать
layout()->activate(); // по идее это должно заставить компоновщик пересчитать геометрию формы
resize(minimumSizeHint());


ДА! Огромнейшее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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