我想创建一个图形用户界面,允许用户使用鼠标左键在图像上绘制任意数量的矩形。 paint方法已经在QGraphicsItem子类中实现:
void ImageGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
if(mousePressed){
painter->drawPixmap(0,0,*pixmap);
if(selectedTool==1){
painter->drawRect(y)
}
drawStarted=true;
painter->setPen(Qt::blue);
}
// The rectangle is not erased after the user unpresses the left button
else if(drawStarted){
QPainter *tempPainter=new QPainter(pixmap);
if(selectedTool==1){
tempPainter->drawRect(y);
tempPainter->setPen(Qt::blue);
}
painter->drawPixmap(0,0,*pixmap);
}
}
我还重新实现了" mousePress"," MouseMove"和" MouseRelease"方法和用户能够绘制一个矩形。 但是,他无法绘制几个矩形。当他尝试时,应用程序说:" QPainter不活跃"和#34;两位画家不能同时使用同一个QPaintDevice"
非常感谢你的帮助