1、widget.h中:
public:
Widget(QWidget *parent = 0);
~Widget();
void paintEvent(QPaintEvent *ev);
void mousePressEvent(QMouseEvent *ev);
void mouseMoveEvent(QMouseEvent *ev);
void mouseReleaseEvent(QMouseEvent *ev);
QVector<QPoint>_lines;
2、widget.cpp中
#include <QPixmap>
#include <QMouseEvent>
void Widget::paintEvent(QPaintEvent *)
{
QPainter p(this);
for(int i = 0; i < _lines.size() - 1; ++i){
p.drawLine(_lines.at(i), _lines.at(i+1));
}
}
void Widget::mouseMoveEvent(QMouseEvent *ev)
{
_lines.append(ev->pos());
update();
}
void Widget::mousePressEvent(QMouseEvent *ev)
{
_lines.append(ev->pos());
}
void Widget::mouseReleaseEvent(QMouseEvent *ev)
{
_lines.append(ev->pos());
}