tablevalue.cpp 907 Bytes
#include "tablevalue.h"

#include <QColor>

#include <QtDebug>

TableValue::TableValue()
{
//    timer.setSingleShot(true);
    connect(&animationTimer, SIGNAL(timeout()), this, SLOT(updateColor()));
//    connect(&timer, SIGNAL(timeout()), &animationTimer, SLOT(stop()));
//    connect(&timer, SIGNAL(timeout()), this, SLOT(updateColor()));
//    setAutoFillBackground(true);
}

void TableValue::setText(const QString &str)
{
    QLabel::setText(str);
    time = QTime::currentTime().addSecs(2);
    animationTimer.start(33);

//    updateColor();
}

void TableValue::updateColor()
{
    int remain = qBound(0, QTime::currentTime().msecsTo(time), 2000);
    int a = 255 * remain / 4000;

    if (a > 1)
        setStyleSheet(QString().sprintf("background-color: rgba(255, 0, 0, %d)", a));
    else
    {
        setStyleSheet("background-color: rgba(255, 0, 0, 0)");
        animationTimer.stop();
    }
}