.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui/QMainWindow>
#include <QImage>
#include <QTimer>
#include <QTime>
namespace Ui
{
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void paintEvent ( QPaintEvent * event );
private:
QImage *m_pImage;
QTimer m_timer;
QTime time;
Ui::MainWindow *ui;
public slots:
void OnTimer();
};
#endif // MAINWINDOW_H
.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_pImage=NULL;
connect(&m_timer,SIGNAL(timeout()),this,SLOT(OnTimer()));
m_timer.start(1000);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::OnTimer()
{
time=QTime::currentTime();
if(m_pImage!=NULL)
{
delete m_pImage;
m_pImage=NULL;
}
m_pImage=new QImage(250,50,QImage::Format_RGB32);
QPainter paint(m_pImage);
paint.fillRect(0,0,250,50,Qt::red);
paint.drawText(0,25,time.toString());
update(0,0,this->width(),this->height());
}
void MainWindow::paintEvent ( QPaintEvent * event )
{
QPainter painter(this);
if(m_pImage)
{
painter.drawImage(100,100,*m_pImage);
}
}