qt实现会动的小人

效果

实现效果如图
在这里插入图片描述

方法设计

建立dialog项目。

先利用resource file导入图片资源。

利用函数初始化图片到一个QPixmap数组内;

Dialog内设出索引变量。

在paintEvent内根据索引输出图片。

在timerEvent内更改索引变量。

设计计时器(startTimer()函数);

代码

#include "dialog.h"
#include "ui_dialog.h"
#include<QPainter>
#include<QPixmap>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::Dialog)
{
    ui->setupUi(this);
    startTimer(100);
    curIndex=0;
    initPixmap();

}

Dialog::~Dialog()
{
    delete ui;
}
void Dialog::timerEvent(QTimerEvent *event){
    curIndex++;
    if(curIndex>=8){
        curIndex=0;
    }
    repaint();
}
void Dialog::paintEvent(QPaintEvent *event){
    QPainter painter(this);
    for(int i=0;i<8;i++){
    painter.drawPixmap(0+80*i,0+91*i,80,91,pixmap[curIndex+i*8]);
    }
}

void Dialog::initPixmap(){
    for(int i=0;i<64;i++){
        QString filename=QString(":/new/prefix1/1_%1.png").arg(i+2,2,10,QLatin1Char('0'));
        QPixmap map(filename);
        pixmap[i]=map;
    }
}

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值