widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
//重写绘图事件
virtual void paintEvent(QPaintEvent *event);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QPixmap>
#include <QPushButton>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->resize(800,600);
//将button移动到最下方的中间位置
//窗口的宽高
//this->width();
//this->height();
//按钮的宽高
//ui->pushButton->width();
//ui->pushButton->height();
ui->pushButton->move((this->width()-ui->pushButton->width())*0.5,(this->height()-ui->pushButton->height()));
connect(ui->pushButton,&QPushButton::clicked,[=](){
//
//重新加载绘图事件
this->update();
});
}
Widget::~Widget()
{
delete ui;
}
//重写绘图事件
void Widget::paintEvent(QPaintEvent *event)
{
static int x =0;
//定义一个画家
QPainter *painter = new QPainter(this);
//定义一个图片空间
QPixmap p;
p.load(":/demo.png");
p.scaled(p.width()*0.5,p.height()*0.5);
//画家绘图
painter->drawPixmap(x++,0,p.width(),p.height(),p);
x+=2;
if(x>=this->width())
{
x=0;
}
}