воскресенье, 28 марта 2010 г.

QLabel & QPainter. Рисование на картинке

Случилась как-то задача. Нужно было загружать картинку и потом рисовать на ней всякой разное мышкой.
В роли виджета для загрузки картинки я сделал унаследованный от QLabel виджет с переопределенным событием
void RenderingLabel::paintEvent(QPaintEvent* pe){}
Мышка отлично рисовала, но проблема была в том, что фоновая картинка не отображалась. Как позже выяснилось, нужно было вызвать базовое событие paintEvent. Т.е. все должно выглядеть вот так:
void RenderingLabel::paintEvent(QPaintEvent* pe)
{
 QLabel::paintEvent(pe); // базовое событие
 QPainter painter(this);
        // А тут рисуем что хотим
}
Вот и все дела)