Qt实现的圆形进度条

发布于 2020-03-28  258 次阅读


    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing, true);
    int m_rotateAngle = 360 * m_percent / 100;
    int side = qMin(width(), height());
    QRectF outRect(0, 0, side, side);//矩形长宽为窗口的长宽
    QRectF inRect(20, 20, side-40, side-40);
    QString strValue = QString("%1%").arg(QString::number(m_percent));
    //画外圆
    painter.setPen(Qt::NoPen);
    painter.setBrush(QBrush(QColor(232, 232, 232)));
    painter.drawEllipse(outRect);
    //画内圆
    painter.setBrush(QBrush(QColor(96, 146, 231)));
    painter.drawPie(outRect, (90 - m_rotateAngle)*16, m_rotateAngle*16);
    //画遮罩,遮罩颜色为窗口颜色
    painter.setBrush(palette().window().color());
    painter.drawEllipse(inRect);
    //画文字
    QFont font;
    font.setPixelSize(15);
    font.setBold(true);
    painter.setFont(font);
    painter.setPen(QColor("#555555"));
    painter.drawText(inRect, Qt::AlignCenter, strValue);

欢迎关注我的小程序,小程序内容与网站自动保持同步

欢迎关注我的微信公众号,本网站所有的文章以及更新以后都会手动同步到微信公众号上。


公交车司机终于在众人的指责中将座位让给了老太太