16,212
社区成员
发帖
与我相关
我的任务
分享
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPushButton>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
protected:
void paintEvent(QPaintEvent *);
void timerEvent(QTimerEvent *);
private:
bool start;
QPixmap pixmap;
};
#endif // MAINWINDOW_H
#include<QMainWindow>
#include<QPainter>
#include "mainwindow.h"
MyWidget::MyWidget(QWidget *parent):QWidget(parent),pixmap(800,600)
{
start=true;
resize(800,600);
startTimer(50000);
}
void MyWidget::paintEvent(QPaintEvent *paintevent)
{
QPainter painter(this);
QRect rect(0,0,800,600);
QBrush brush(QColor(200,20,10));
painter.setBrush(brush);
if(start==true)
{
painter.drawRect(rect);
pixmap.fill(this,0,0); //保存第一次画的东西
start=false;
}
else
{
painter.drawPixmap(0,0,pixmap);//还原
}
}
void MyWidget::timerEvent(QTimerEvent *)
{
pixmap.fill(this,0,0);
update();
}
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.show();
return a.exec();
}
void MyWidget::paintEvent(QPaintEvent *paintevent)
{
QPainter painter(this);
if(start==true)
{
init();
pixmap.fill(this,0,0); //保存第一次画的东西
start=false;
}
else
{
painter.drawPixmap(0,0,pixmap);//还原
}
}
void MyWidget::paintEvent(QPaintEvent *paintevent)
{
QPainter painter(this);
if(start==true)
{
//draw something //这里我调用了一个函数init(),在init()里面是画了图的
pixmap.fill(this,0,0);
start=false;
}
// else
// {
// painter.drawPixmap(0,0,pixmap);
// }
}
MyWidget::MyWidget(QWidget *parent):QWidget(parent),pixmap(800,600)
{
start=true;
resize(800,600);
startTimer(20000);
}
void MyWidget::paintEvent(QPaintEvent *paintevent)
{
QPainter painter(this);
if(start==true)
{
//draw something
pixmap.fill(this,0,0);
start=false;
}
// else
// {
// painter.drawPixmap(0,0,pixmap);
// }
}
void MyWidget::timerEvent(QTimerEvent *timerevent)
{
// pixmap.fill(this,0,0);
update();
}