animatedimagebox.cpp 829 Bytes
#include "animatedimagebox.h"

AnimatedImageBox::AnimatedImageBox(QWidget *parent) :
    QLabel(parent),
    index(0)
{
    timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(step()));
}

AnimatedImageBox::~AnimatedImageBox()
{
    images.clear();
}

void AnimatedImageBox::load(QString fileName)
{
    QPixmap pixmap;
    pixmap.load(fileName);

    if (images.isEmpty())
        setPixmap(pixmap);

    images.append(pixmap);
    index = 0;
}

void AnimatedImageBox::clear()
{
    images.clear();
    index = 0;
}

void AnimatedImageBox::start(int msec)
{
    timer->start(msec);
}

void AnimatedImageBox::stop()
{
    timer->stop();
}

void AnimatedImageBox::step()
{
    if (images.isEmpty())
        return;

    if (index >= images.length())
        index = 0;

    setPixmap(images.at(index++));
}