查看完整版本: [-- Qt 绘制圆环,圆环外再绘制一个动态的椭圆。 --]

QTCN开发网 -> Qt基础编程 -> Qt 绘制圆环,圆环外再绘制一个动态的椭圆。 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

lwei24 2022-05-19 14:57

Qt 绘制圆环,圆环外再绘制一个动态的椭圆。

如题,各位大佬,如何在圆环外再设置一个动态的椭圆,这个椭圆自动随着这个圆转动。。。
  1. void RingWidget::paintEvent(QPaintEvent *event)
    {
        Q_UNUSED(event);
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing);

        QRadialGradient gradient(0, 0, height()/2);
        gradient.setColorAt(0, qRgb(3,139, 153));
        gradient.setColorAt(1.0, qRgb(169, 238, 125));
        painter.setBrush(gradient);

        int m_persent = 90;//绘制的环的比例
        int m_rotateAngle = 360*m_persent/100;
        int side = qMin(width(), height());
        QRectF ouRect(0, 0, side, side);//矩形长宽为窗口的长宽d
        QRectF inRect(20, 20, side-40, side-40);

        //画外圆
        painter.setPen(Qt::NoPen);
        //p.setBrush(QBrush(QColor(97, 117, 118)));
        painter.drawEllipse(ouRect);
        //画内圆
        //p.setBrush(QBrush(QColor(255, 107, 107)));
        painter.drawPie(ouRect, (90-m_rotateAngle)*16, m_rotateAngle*16);
        //画遮罩,遮罩颜色为窗口颜色
        painter.setBrush(palette().window().color());
        painter.drawEllipse(inRect);

        //画文字
        QFont f = QFont("Microsoft YaHei", 15, QFont::Bold);
        painter.setFont(f);
        painter.setPen(Qt::white);
        painter.drawText(inRect, Qt::AlignCenter, m_strDescribe);
    }

如上,以上是我绘制圆环的代码,怎么再这个圆环外再加一个动态的椭圆,这个椭圆的边框会自动围绕圆环进行转动。各位大佬,劳烦大家指点一下,小弟在此多谢了!


查看完整版本: [-- Qt 绘制圆环,圆环外再绘制一个动态的椭圆。 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled