Qt之QWidget 自定义倒计时器

2023-12-22 00:05:21

简述

        Qt提供的带进度显示的只有一个QProgresBar,这个控件要么是加载进度从0~100%,要么是持续的两边滚动;而我想要是倒计时的效果,所以QProgresBar并不满足要求,而Qt重写控件相对于MFC来说简直是轻而易举,所以就整了两种不同的倒计时控件;

效果

代码

        QPushButton的绘制部分: 

void MProgressButton::paintEvent(QPaintEvent *event)
{
    QPushButton::paintEvent(event);

    if (m_iTotalMs > 0) {
        QPen pen;
        pen.setWidth(6);
        pen.setColor(Qt::red);

        QPainter painter(this);
        painter.setPen(pen);
        painter.setRenderHint(QPainter::Antialiasing);

        int w = width(), h = height();
        int total = (w + h) * 2;

        float percent = (m_iRemainMs * 1.0f / m_iTotalMs);
        float remain = percent * total;

        QLineF line;
        if (remain > 

文章来源:https://blog.csdn.net/Ilson_/article/details/135141871
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。