24,854
社区成员
发帖
与我相关
我的任务
分享
Battery::Battery(QWidget *parent) : QWidget(parent),
m_value(0)
{
tempPix= new QPixmap(size());
QPainter *painter=new QPainter;
painter->begin(tempPix);
painter->setRenderHint(QPainter::Antialiasing,true);
drawBackground(painter);
painter->end();
setAutoFillBackground(true);
QPalette pale(this->palette());
pale.setBrush(QPalette::Background,QBrush(*tempPix));
setPalette(pale);
}
Battery::~Battery()
{
}
void Battery::paintEvent(QPaintEvent *){
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing,true);
drawNumberic(&painter);
}
void Battery::drawBackground(QPainter* painter){
painter->save();
QPen pen(Qt::white);
pen.setWidth(1);
painter->setPen(pen);
painter->drawRect(0,0,20,10);
pen.setWidth(3);
painter->drawLine(21,3,21,7);
painter->restore();
}
void Battery::drawNumberic(QPainter* painter){
painter->save();
if(m_value>=0.5){
painter->setPen(QColor("#34EF8D"));
painter->setBrush(QColor("#34EF8D"));
}else if(m_value>=0.3){
painter->setPen(QColor("#EA9646"));
painter->setBrush(QColor("#EA9646"));
}else{
painter->setPen(QColor("#FF0005"));
painter->setBrush(QColor("#FF0005"));
}
painter->drawRect(2,2,16*m_value,6);
painter->restore();
}
void Battery::updateValue(double value){
m_value=value;
update();
}