QT基础绘图
//.h
Class DiyDraw: public QWidget
{
Q_OBJECT
piblic:
explicit DiyDraw(QWidget* parent=0);
void mousePressEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void paintEvent(QPaintEvent* event); //重绘函数
void resizeEvent(QResizeEvent* event);
signals:
public slots:
void clear();
protected:
private:
QPixmap* pixmap;
QPoint startPos;
QPoint endPos;
}
//.cpp
DiyDraw::DiyDraw(QWidget* parent): QWidget(parent)
{
setAutoFillBackground(true);
setPalette(QPalette(Qt::white));
pixmap=new QPixmap(size()); //用于接收绘制内容
pixmap->fill(Qt::white);
}
void DiyDraw::mousePressEvent(QMouseEvent* event)
{
startPos=event->pos();
}
void DiyDraw::mouseMoveEvent(QMouseEvent* event)
{
QPainter* painter=new QPainter;
QPen pen;
pen.setColor(QColor(Qt::red));
painter->begin(pixmap);
painter->setPen(pen);
painter->drawLine(startPos, event->pos());
painter->end();
startPos=event->pos();
update();
}
void DiyDraw::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
painter.drawPixmap(QPoint(0,0), *pixmap);
}
void DiyDraw::resizeEvent(QResizeEvent* event)
{