void PaintWidget::mouseMoveEvent(QMouseEvent*event)
{
if(currentShape=="pen")
{
endPoint=event->pos();
QPainter painter(this);
QPen pen;
pen.setColor(penColor);
painter.setPen(pen);
painter.drawLine(startPoint,endPoint);
emit shapeChanged("pen",startPoint,endPoint,penColor);
startPoint=endPoint;
}
else
{
eraserSquare(event->pos(),eraserSize);
emit shapeChanged("eraser",event->pos(),QPoint(0,0),QColor(0,0,0),
eraserSize);
}
}
这是paintwidget.cpp的函数,windows的Qt是不能在mouseEvent里面直接用QPainter画图,只能在painterEvent里画图。
如果你用QtCreator运行这个程序,下面的应用程序输出窗口会有提示:painter不可用