在Qt中使用鼠标绘制几个矩形

时间:2015-10-19 14:55:14

标签: android c++ rectangles qpainter

我想创建一个图形用户界面,允许用户使用鼠标左键在图像上绘制任意数量的矩形。 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"

非常感谢你的帮助

0 个答案:

没有答案