用qt做画图板的问题
菜鸟一个,比着网上的代码敲的,敲完之后不显示画板,真心求教
#ifndef PAINTAREA_H
#define PAINTAREA_H
#include <QWidget>
#include<QPixmap>
class paintarea : public QWidget
{
Q_OBJECT
public:
explicit paintarea(QWidget *parent = 0);
//paintarea(QPixmap& pixmap2);
//~paintarea();
void paint(QPixmap& pximap1);
protected:
void mousePressEvent(QMouseEvent*);
void mouseMoveEvent(QMouseEvent*);
void mouseReleaseEvent(QMouseEvent*);
void paintEvent(QPaintEvent*);
private:
QPixmap pixmap;
QPoint beginpoint,endpoint;
QRgb backcolor;
signals:
public slots:
};
#endif // PAINTAREA_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QtGui>
#include<QtCore>
#include<QMessageBox>
#include<paintarea.h>
paintarea* area;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
area=new paintarea;
}
MainWindow::~MainWindow()
{
delete ui;
}
#include "paintarea.h"
#include <QMouseEvent>
#include<QPoint>
#include<QPainter>
#include<QPixmap>
paintarea::paintarea(QWidget *parent) :
QWidget(parent)
{
pixmap=QPixmap(400,300);
backcolor=qRgb(255,255,255);
pixmap.fill(backcolor);
}
/*void paintarea::paintarea(QPixmap& pixmap2)
{
pixmap=QPixmap(400,300);
}*/
void paintarea::paint(QPixmap& pixmap1)
{
QPainter pt(&pixmap1);
pt.drawLine(beginpoint,endpoint);
beginpoint=endpoint;
}
void paintarea::paintEvent(QPaintEvent *)
{
QPainter pp(this);
pp.drawPixmap(0,0,pixmap);
}
void paintarea::mousePressEvent(QMouseEvent* event)
{
if(event->button() == Qt::LeftButton)
beginpoint=event->pos();
}
void paintarea::mouseMoveEvent(QMouseEvent*event)
{
if(event->button()&Qt::LeftButton)
endpoint=event->pos();
paint(pixmap);
}
void paintarea::mouseReleaseEvent(QMouseEvent*event)
{
if(event->button()==Qt::LeftButton)
endpoint=event->pos();
paint(pixmap);
}
哎确实不怎么会QT的GUI啊%>_<%