一、widget.h中:app
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;
二、widget.cpp中this
#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()); }