首页| 论坛| 消息

标题:学习自定义控件之电量显示
作者:futureq
日期:2018-12-05 23:54
内容:

昨天做了一个简单电池的widget,今天把它做成自定义控件,集成到qtcreator,环境Qt5.11.2 QtCreator4.7.2,编译器vs2017。
本例子主要是为了学习,所以电池只有一个电量的属性。
另外,特别感谢大神刘的博客让我少走了很多坑(https://www.cnblogs.com/feiyangqingyun/p/6182320.html)。
简单介绍一下过程:
custombattery.cpp
void CustomBattery::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
drawBetteryBorder(painter);
drawBetteryValue(painter);
}
void CustomBattery::setValue(double value)
{
if (value < 0 || value > 100 || m_value == value)
{
return;
}
m_value = value;
emit valueChanged(m_value);
update();
}
double CustomBattery::getValue(void)
{
return m_value;
}
void CustomBattery::drawBetteryBorder(QPainter &painter)
{
painter.save();
// 全部要以widget的长宽比例计算
int left = 10 * this->width() / 100;
int top = 10 * this->height() / 100;
int width = 70 * this->width() / 100;
int height = 80 * this->height() / 100;
// 画背景
painter.setBrush(QColor("#595B5D"));
painter.drawRect(0, 0, 100 * this->width() / 100, 100 * this->height() / 100);
// 画框架
painter.setPen(QPen(QColor("#F0F0F0"), 3));
QRectF rect(left, top, width, height);
painter.drawRect(rect);
// 画电池头
painter.setBrush(QColor("#F0F0F0"));
QRectF headerRect(left + width,..


#1 [沉默小ai 12-06 15:20]
感谢楼主的分享,但是貌似图看不见
#2 [futureq 12-11 00:37]

#3 回 沉默小ai 的帖子 [futureq 12-11 00:38]
沉默小ai:感谢楼主的分享,但是貌似图看不见  (2018-12-06 15:20) 
4个电池是拖上去
#4 回 futureq 的帖子 [沉默小ai 12-11 09:02]
futureq:4个电池是拖上去 (2018-12-11 00:38) 
看起来很不错,谢谢楼主的奉献
#5 [jr357387164 12-17 22:42]

<< 1 2 >> (1/2)

回复 发表
主题 版块