Название: Пропорциональный ресайз виджетов Отправлено: Sahab от Марта 31, 2010, 20:28 Как сделать пропорциональный ресайз виджетов... чтоб при ресайзе он всегда сохранял пропорцию сторон (например - квадратным)
heightForWidth не помогает Название: Re: Пропорциональный ресайз виджетов Отправлено: Пантер от Марта 31, 2010, 20:36 Отлавливай resizeEvent и ставь нужные размеры.
Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Марта 31, 2010, 21:13 можно более расширенно?
каким методом нужно, чтобы не возникала рекурсия? Название: Re: Пропорциональный ресайз виджетов Отправлено: Пантер от Марта 31, 2010, 21:20 Код
Примерно так, нужно потестить. По идее, рекурсии быть не должно. Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Марта 31, 2010, 21:23 Есть рекурсия
Название: Re: Пропорциональный ресайз виджетов Отправлено: pastor от Марта 31, 2010, 21:24 Пантер, твой код учитывает только резайз по выстоте. Если произойдет ресайз по ширине, код работать не будет
Название: Re: Пропорциональный ресайз виджетов Отправлено: Пантер от Марта 31, 2010, 21:32 Я же написал, что код примерный. Дальше от него отталкиваться и делать как нужно. Нужно учитывать oldSize () и исходя из него подправлять ширину/высоту.
Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Марта 31, 2010, 21:35 РЕКУРСИЯ!!!
Название: Re: Пропорциональный ресайз виджетов Отправлено: Пантер от Марта 31, 2010, 21:40 Винда? Под Линухом глючно, но работает.
Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Марта 31, 2010, 21:46 Да, Винда... и чесно гря непонятно как в юнихе может работать... что в юнихе resize не вызывает resizeEvent?
Название: Re: Пропорциональный ресайз виджетов Отправлено: pastor от Марта 31, 2010, 21:48 Чесно сказать непойму, где может быть рекурсия если сравнивать size() и oldSize(). Это условие выхода из рекурсии
Название: Re: Пропорциональный ресайз виджетов Отправлено: Пантер от Марта 31, 2010, 21:55 pastor: я же о чем. Единственное, ресайз будет тормозить.
Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Марта 31, 2010, 21:58 Thanks a lot;
самое обидное что сам oldSize использовал в коде... ??? Название: Re: Пропорциональный ресайз виджетов Отправлено: niXman от Марта 31, 2010, 23:06 мдя...все зависит с какой точки смотреть ;D
Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Апреля 01, 2010, 15:57 не работает "нормально"
подскажите где туплю( Код: void Dialog::resizeEvent(QResizeEvent *e){ Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Апреля 02, 2010, 09:48 ???
Название: Re: Пропорциональный ресайз виджетов Отправлено: dox от Июля 26, 2010, 12:47 Привет. через resizeEvent нормально не будет работать, я столкнулся с таким же вопросом и решил сделать через winEvent. Там я отлавливаю для винды сообщение WM_RESIZED.
Название: Re: Пропорциональный ресайз виджетов Отправлено: Авварон от Июля 26, 2010, 13:25 почему нельзя флагом блокировать повторный резайсз?
Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Июля 26, 2010, 16:52 компилябельный пример бросишь?)
Название: Re: Пропорциональный ресайз виджетов Отправлено: Авварон от Июля 27, 2010, 09:52 Код: void Dialog::resizeEvent(QResizeEvent *e){ Название: Re: Пропорциональный ресайз виджетов Отправлено: dox от Июля 27, 2010, 10:03 Приветствую. Пробовал и через флаг, кот. не давал ресайзить повторно, но окно все равно уменьшалось автоматически. Хотя выводимые данные дэбаг давали понять что код не доходит до функции resize в обработчике события.
Название: Re: Пропорциональный ресайз виджетов Отправлено: Авварон от Июля 27, 2010, 10:13 может вечером тогда поковыряюсь, ща нет кути(
Название: Re: Пропорциональный ресайз виджетов Отправлено: Sahab от Августа 18, 2010, 09:35 что кутя не появилась?
Название: Re: Пропорциональный ресайз виджетов Отправлено: ufna от Августа 18, 2010, 12:47 с флагом на "повторный ресайз" не катит, можешь попробовать. Там такие артефакты лезут, что жуть. Проблема в том, что событие это приходит после ресайза окна, это как минимум. Т.е. пользователь может окно двигать как хочет все равно.
получилось только так: http://ufna.ru/2010/08/16/qt-proportional-window-resize-win |