QPainter::drawPixmap 使用请教

时间:2021-11-25 19:00:43
我想画一个图,只显示它的局部,不要缩放。

查了下面的帮助信息,但是这个函数的前面和后面两个坐标分别是什么意思?没有看明白。

QPoint作为将要画的起始坐标,QRect设成源图片的大小。结果,图片没有显示出来。

void QPainter::drawPixmap ( const QPoint & point, const QPixmap & pixmap, const QRect & source )
This is an overloaded function.
Draws the rectangular portion source of the given pixmap with its origin at the given point.

请教,这个如何使用呢?

5 个解决方案

#1


试试只设前面两个参数,最后一个参数先不要设置先

drawPixmap(QPoint(100,100),pixmap) ;

#2


试了,结果是整个图片都显示了,不是只显示我想要的局部。

#3


QRectF pt(10.0, 20.0)//(10,20, 80.0, 60.0);
 QRectF source(0.0, 0.0, 70.0, 40.0);
 QPixmap pixmap(":myPixmap.png");

 QPainter(this);
 painter.drawPixmap(pt, image, source);

意思为:将pixmap上source矩阵里的像素,画到画布上的(10,20, 80.0, 60.0)矩阵里。

#4


对于不确定的函数,可以多做实验,看其效果,再结合函数帮助文档,理解函数的意思

#5


3楼的回复回事,登录了帐号也不让看?

#1


试试只设前面两个参数,最后一个参数先不要设置先

drawPixmap(QPoint(100,100),pixmap) ;

#2


试了,结果是整个图片都显示了,不是只显示我想要的局部。

#3


QRectF pt(10.0, 20.0)//(10,20, 80.0, 60.0);
 QRectF source(0.0, 0.0, 70.0, 40.0);
 QPixmap pixmap(":myPixmap.png");

 QPainter(this);
 painter.drawPixmap(pt, image, source);

意思为:将pixmap上source矩阵里的像素,画到画布上的(10,20, 80.0, 60.0)矩阵里。

#4


对于不确定的函数,可以多做实验,看其效果,再结合函数帮助文档,理解函数的意思

#5


3楼的回复回事,登录了帐号也不让看?