Qt QPixmap QPainter проблема

У меня есть кусок кода, который имеет следующие строки кода:

int dsize = 100;
QPainter *painter;
QPixmap *img;
QLabel *l_img;

painter = new QPainter;
img = new QPixmap(dsize, dsize);

l_img = new QLabel;
l_img->setPixmap(*img);

painter->begin(img);
painter->fillRect(img->rect(), Qt::white);

QPen pen(Qt::black, 12);
painter->setPen(pen);
painter->drawLine(40, 40, 40, 100);

painter->end();
l_img->show();

Однако, когда я запускаю код, я не вижу белого изображения с черным прямоугольником на нем. На самом деле то, что я вижу, это заголовок окна, написанный крупным шрифтом. Кажется, ничего не работает, я просто получаю такое изображение. Что я делаю неправильно?

Спасибо!


person petermlm    schedule 09.02.2011    source источник
comment
img = новый QPixmap (dsize, dsize); ‹- Нет необходимости создавать QPixmaps в куче. Они неявно разделены. Просто передайте их по значению/константе ref. Вероятно, у вас есть утечка памяти.   -  person Frank Osterfeld    schedule 09.02.2011


Ответы (1)


Понятно!!

У него есть эта строка:

l_img->setPixmap(*img);

Это должно быть после

painter->end();

Спасибо, хД.

person petermlm    schedule 09.02.2011