2011-02-09 76 views
0

我有一段代码,有这个代码行:的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(); 

如何过,当我运行的代码,我没有看到任何白色图像上有一个黑色的长方形。实际上我看到的是用大字体书写的窗口的标题。似乎没有任何工作,我只是得到一个这样的图像。我究竟做错了什么?

谢谢!

+2

“img = new QPixmap(dsize,dsize);” < - 不需要在堆上创建QPixmaps。他们是隐含共享的。只需通过value/const ref传递它们即可。你可能会在那里泄漏记忆。 – 2011-02-09 18:52:24

回答

0

明白了!

它有这样一行:

l_img->setPixmap(*img); 

它应该是后

painter->end(); 

谢谢的xD。