在Qt开发界面中建立数据通信时,通常使用一个呼吸灯亮来指示数据的通信,如:亮红灯代表数据中断,亮绿灯代表数据接通
在文件中使用了lightpoint.cpp文件封装了呼吸灯的主要操作函数,如下所示:
#include "lightpoint.h"
#include "qpainter.h"
#include "qevent.h"
#include "qtimer.h"
LightPoint::LightPoint(QWidget *parent) : QWidget(parent)
{
step = 10;
interval = 100;
bgColor = QColor(255, 0, 0);
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(100);
offset = 0;
add = true;
}
LightPoint::~LightPoint()
{
if (timer->isActive()) {
timer->stop();
}
}
void LightPoint::paintEvent(QPaintEvent *)
{
int width = this->width();
int height = this->height();
int side = qMin(width, height);
//绘制准备工作,启用反锯齿,平移坐标轴中心,等比例缩放
QPainter painter(this);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
painter.translate(width / 2, height / 2);
painter.scale(side /