Qt组件之模拟电池充电
简述
最近,闲暇之余,看到手机充电的状态。就想到做一个这样的效果出来玩一玩,希望大家喜欢。
效果图
代码
//做这个不是很难,希望给大家有些启发,希望大家喜欢
BatteryItem::BatteryItem(QWidget *parent)
: QLabel(parent)
{
//设置电池大小
setFixedSize(26, 16);
}
//每次设置值,刷新电量值
void BatteryItem::setValue(int value)
{
//0~20
m_value = value / 5;
update();
}
void BatteryItem::paintEvent(QPaintEvent *event)
{
QPainter paint(this);
paint.setPen(QColor(136,205,112));
paint.drawRoundedRect(0, 0, 23, 14, 2, 2);
paint.setBrush(QColor(137, 249, 83));
paint.drawRect(23, 4, 1, 6);
paint.drawRect(2, 2, m_value, 10);
}
//主代码中,就做了个定时器,无限循环刷新
QTimeLine* timeLine = new QTimeLine(100,this);
timeLine->setLoopCount(0);
BatteryItem* batteryItem = new BatteryItem(this);
connect(timeLine, &QTimeLine::valueChanged, [batteryItem](qreal value){
static int cnt;
batteryItem->setValue(cnt++);
if (cnt == 100)
{
cnt = 0;
}
});
timeLine->start();
结尾
只为记录,只为分享! 愿所写能对你有所帮助。不忘记点个赞,谢谢~