Название: Как динамически изменить размер виджета? Отправлено: zabavart от Февраль 26, 2011, 20:57 Суть такая: есть форма с кучей объектов, по замыслу, при нажатии на определённую кнопку, половина объектов должна исчезнуть (убираю я их методом hide()), и автоматически размер формы должен подогнаться под минимальный, я это пытаюсь сделать вот так:
Код: this->resize(this->minimumSize()); Название: Re: Как динамически изменить размер виджета? Отправлено: SimpleSunny от Февраль 26, 2011, 21:25 void QWidget::adjustSize ()
Название: Re: Как динамически изменить размер виджета? Отправлено: Авварон от Февраль 26, 2011, 21:28 в qt вообще есть косяк с изменением размера виджетов. По-хорошему считается что юзер должен сам задавать размер окна а не программа. Иногда это можно обойти, иногда нет. Танцы с бубном обеспечены:)
Название: Re: Как динамически изменить размер виджета? Отправлено: zabavart от Февраль 26, 2011, 21:29 спасибо! Часа два на это убил!)
Название: Re: Как динамически изменить размер виджета? Отправлено: iks от Февраль 27, 2011, 12:37 Ну я чаще применяю QTabWidget или QStackedWidget как setCentralWidget и уже при создании окон запоминаю размер в переменной которую потом можно всегда обработать, а если нужен размер относительно окна монитора то применяю такой скрипт в QMainWindow, окно 4/3 получается
Код: this->setMinimumSize(qApp->desktop()->height()/4*3/3*4, qApp->desktop()->height()/4*3); Название: Re: Как динамически изменить размер виджета? Отправлено: shirushizo от Февраль 27, 2011, 16:45 ... А это зачем? qApp->desktop()->height() чем не устраивает?Код: ...qApp->desktop()->height()/4*3/3*4... Название: Re: Как динамически изменить размер виджета? Отправлено: iks от Февраль 27, 2011, 17:57 Ну это в зависимости от ситуации, данный скрипт сдернут из моей проги, по умолчанию ее окно не занимает сразу всего экрана, три четвертых высоты монитора и от высоты окна уже высчитывается ширина окна программы, ну если юзер захочет то само собой может растянуть его.
Почему проверка высоты, ответ простой, сейчас мониторы разные, и чаще ширина более чем у стандартов 3х4. кокоче думаю кому надо тот для себя всегда сам разберется. Название: Re: Как динамически изменить размер виджета? Отправлено: shirushizo от Февраль 28, 2011, 18:07 Я просто про то, что данное выражение: qApp->desktop()->height()/4*3/3*4 - эквивалентно qApp->desktop()->height(), за исключением потери дробной части при каждом действии
Название: Re: Как динамически изменить размер виджета? Отправлено: iks от Февраль 28, 2011, 23:14 да просто автоматом писал, и все )))
|