资源简介
比较实用的Qt指示灯,封装类可以容易的加入到项目中使用。
代码片段和文件信息
#include “qcw_indicatorlamp.h“
#include
QcwIndicatorLamp::QcwIndicatorLamp(QWidget *parent): QWidget(parent)
{
m_alarm = false;
resize(100 100);
}
void QcwIndicatorLamp::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing); /* 使用反锯齿(如果可用) */
painter.translate(width() / 2 height() / 2); /* 坐标变换为窗体中心 */
int side = qMin(width() height());
painter.scale(side / 200.0 side / 200.0); /* 比例缩放 */
painter.setPen(Qt::NoPen);
int radius = 100;
/* 外边框 */
QLinearGradient lg1(0 -radius 0 radius);
lg1.setColorAt(0 QColor(255 255 255));
lg1.setColorAt(1 QColor(166 166 166));
painter.setBrush(lg1);
painter.drawEllipse(-radius -radius radius << 1 radius << 1);
/* 内边框 */
radius -= 13;
QLinearGradient lg2(0 -radius 0 radius);
lg2.setColorAt(0 QColor(166 166 166));
lg2.setColorAt(1 QColor(255 255 255));
painter.setBrush(lg2);
painter.drawEllipse(-radius -radius radius << 1 radius << 1);
/* 内部指示颜色 */
radius -= 4;
QRadialGradient rg(0 0 radius);
if (m_alarm)
{
rg.setColorAt(0 QColor(245 0 0));
rg.setColorAt(0.6 QColor(210 0 0));
rg.setColorAt(1 QColor(166 0 0));
}
else
{
rg.setColorAt(0 QColor(0 245 0));
rg.setColorAt(0.6 QColor(0 210 0));
rg.setColorAt(1 QColor(0 166 0));
}
painter.setBrush(rg);
painter.drawEllipse(-radius -radius radius << 1 radius << 1);
}
void QcwIndicatorLamp::setAlarm(bool alarm)
{
m_alarm = alarm;
update();
}
- 上一篇:基于Qt的整数按位反转实现
- 下一篇:Qt 开源动态坐标带时间标非qwt实时曲线
相关资源
- Qt 开源动态坐标带时间标非qwt实时曲
- 基于Qt的整数按位反转实现
- HP ProLiant DL388p Gen8 服务器 - LED 指示灯
- UDP通信QT
- 在Freescale iMX28 or iMX515上,移植QT过程
- linux下的QT串口通信
- Qt5.12.0 VS2017 64位 编译Qt5WebEngine实现
- demo-QMdiSubWindow.rar
- QT写的计算器源码
- 501222zw_mqtt_fc.zip
- thingsboard之MQTT接入TB说明0531.docx
- 拖动旋转缩放椭圆和矩形.rar
- QTreeView实现节点拖动.zip
- 基于qt的简易计算器
- QT小游戏《2048》源码含大量注释
- QT数据库操作
- 基于QT简单客户端与服务器
- Qt实现smtp发送邮件
- Qt 二维码打印
- 线段绘制,并且可以拖动线段绘制
- QT5实现简单的TCP通信例程
- 变电站机器人监控系统界面
- MainWindow.rar
- qt QPainter 绘制跑马灯
- qt activemq mqtt 动态库
- Windows下基于Opencv+Qt的视频聊天客户端
- PyQt5:简单视频播放器
- Qt 使用sendemailapi实现邮件发送
- 关于QT多线程子线程使用信号和槽
- QT 窗口切换
评论
共有 条评论