Название: Масштабирование фоновой картинки формы Отправлено: jurtal от Март 01, 2010, 16:25 Динамически на форме размещаю кнопки. (Количество их м.б. разным).
Фоном формы должен быть png (он прост - серый квадрат с закругленными краями). Т.к. размер формы с кнопочками каждый раз разный, то после размещения кнопок накладываю отмасштабированную маску. Вот так QPixmap backgroundRegion = pixmap.scaled(e->size(), Qt::IgnoreAspectRatio, Qt::FastTransformation); setMask(backgroundRegion.mask()); Получаются кнопки на серой подложке с закругленными краями. Проблема в том, что тормозит перерисовка из-за масштабирования. Если у кого есть идеи как оптимизировать, пожалуйста поделитесь... Название: Re: Масштабирование фоновой картинки формы Отправлено: BRE от Март 01, 2010, 16:31 Ты картинку в paintEvent все время масштабируешь? Каждую перерисовку?
Название: Re: Масштабирование фоновой картинки формы Отправлено: jurtal от Март 01, 2010, 16:41 Да, в PaintEvent Каждую перерисовку.
Название: Re: Масштабирование фоновой картинки формы Отправлено: BRE от Март 01, 2010, 17:00 Да, в PaintEvent Каждую перерисовку. Ну не делай так. Это не быстро. :)Название: Re: Масштабирование фоновой картинки формы Отправлено: jurtal от Март 01, 2010, 17:05 Даже один раз масштабировать png долго... Так что просто делать ЭТО редко не поможет... Нужен алгоритм похитрее.
Название: Re: Масштабирование фоновой картинки формы Отправлено: BRE от Март 01, 2010, 17:12 Даже один раз масштабировать png долго... Так что просто делать ЭТО редко не поможет... Нужен алгоритм похитрее. Если это одноцветная картинка, то лучше делать заливку и рисовать скругленные углы.Если хочется масштабировать, то картинку лучше один раз загрузить в QPixmap и при изменении размеров виджета в обработчике QResizeEvent ее масштабировать. Дальше в paintEvent выводить уже отмасштабированную. Название: Re: Масштабирование фоновой картинки формы Отправлено: jurtal от Март 01, 2010, 17:21 В resize один раз масштабировать уже попробовал... Долго тоже получилось. Можешь пояснить как углы обезать?
Название: Re: Масштабирование фоновой картинки формы Отправлено: break от Март 02, 2010, 01:41 можно попробовать через ProxyWdiget в QGraphicsView
есть такой класс вьюва Код
использовать со своей формой надо так: Код
у меня ресайзит и вроде достаточно быстро - этот сопсоб хорош тем что он годен для ресайза абсолютно любого виджета в том числе не предназначенного для ресайза совсем |