fader.cpp
来自「Linux窗口程序设计__Qt4精彩实例分析上面的源代码第二部分.以循序渐进的方」· C++ 代码 · 共 44 行
CPP
44 行
#include "fader.h"
#include <QtGui>
FaderWidget::FaderWidget(QWidget *parent)
: QWidget(parent)
{
if (parent)
startColor = parent->palette().window().color();
else
startColor = Qt::white;
currentAlpha = 0;
duration = 1000;
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()),this, SLOT(update()));
setAttribute(Qt::WA_DeleteOnClose);
resize(parent->size());
}
void FaderWidget::start()
{
currentAlpha = 255;
timer->start(100);
show();
}
void FaderWidget::paintEvent(QPaintEvent * /* event */)
{
QPainter painter(this);
QColor semiTransparentColor = startColor;
semiTransparentColor.setAlpha(currentAlpha);
painter.fillRect(rect(), semiTransparentColor);
currentAlpha -= 255 * timer->interval() / duration;
if (currentAlpha <= 0)
{
timer->stop();
close();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?