Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ наложение слоя поверх изображения в QPixmap

Автор: call_me_Frank 8.4.2015, 16:51

Всем привет!

Кто знает, как можно сделать "выделение" для QPixmap?


выделение - это, например, непрозрачная рамка и полупрозрачный фон (см. картинки)

+ еще вопрос, как сделать размытие (blur) содержимого QPixmap? полагаю, что это вопросы схожего порядка.

Автор: call_me_Frank 8.4.2015, 17:56

На вскидку получается вот что (this - объект QWidget):

    QPixmap pixmap(this->size());
    this->render(&pixmap, QPoint(), QRegion(this->rect()));
    QPainter ptr(&pixmap);

    QRect border(0,0,this->width() - 1, this->height() - 1);
    ptr.setBrush(QBrush(QColor(0,0,255,125)));
    ptr.drawRect(border);

    ptr.setBrush(QBrush());
    ptr.setPen(QPen(Qt::red));
    ptr.drawRect(border);

    pixmap.save("widget.png", 0, 100);


Что-то можно исправить/оптимизировать?

Автор: wiz29 10.4.2015, 11:32

Цитата(call_me_Frank @ 8.4.2015, 16:51) *
как сделать размытие (blur) содержимого QPixmap?


можно воспользоваться QGraphicsBlurEffect, либо написать самому blur фильтр для QImage.

Цитата(call_me_Frank @ 8.4.2015, 17:56) *
Что-то можно исправить/оптимизировать?

Не совсем понятно зачем дважды вызывать drawRect, когда можно то же самое сделать с помощью 1 вызова drawRect.

Автор: call_me_Frank 13.4.2015, 13:41

Цитата(wiz29 @ 10.4.2015, 11:32) *
Не совсем понятно зачем дважды вызывать drawRect, когда можно то же самое сделать с помощью 1 вызова drawRect.


да, действительно )) я просто не художник, с кистями и карандашами работаю мало.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)