【发布时间】:2016-11-21 15:25:36
【问题描述】:
我是 Qt 和 Qt 图形 API 的新手。
我有一个较大的QPixMap 和一个较小的QPixMap。我需要将较大的部分(QRect)替换为较小的部分。
我应该如何做到这一点?
谢谢。
更新
QPainter::drawPixmap() 不会更新 pImage->p_PixMap 所代表的图像。
代码
class GraphicImage : public QObject,
public QGraphicsPixmapItem
{
Q_OBJECT
public:
GraphicImage(QPixmap* oImage,GraphiItemCtrl* pParent);
virtual ~GraphicImage(void);
QPixmap* p_PixMap;
};
- - - -
GraphicImage::GraphicImage(QPixmap* oImage,GraphiItemCtrl* pParent)
:QGraphicsPixmapItem(*oImage), p_Parent(pParent)
{
p_PixMap = oImage;
}
- - - -
void GraphiItemCtrl::SetImagePortion( QString sFileName, QRect rect, QPixmap pChildPixMap )
{
GraphicImage* pImage = map_CurrentImages[sFileName];
if ( !pImage )
return;
pChildPixMap.save("test.jpg");
QPixmap* pMap = pImage->p_PixMap;
QPainter pPainter(pMap);
pPainter.drawPixmap(rect, pChildPixMap);
qDebug() << rect.topLeft();
}
pChildPixMap.save("test.jpg"); 可以毫无问题地保存图像的所需部分。
注意:
pImage 继承自 QObject 和 QGraphicsPixmapItem。
pMap 不是 NULL
【问题讨论】:
-
你应该看看这个问题的答案stackoverflow.com/questions/17888795/…