首页| 论坛| 消息

标题:QPainter 在鼠标移动到指定区域时,重绘背景。
作者:lwei24
日期:2022-06-15 10:43
内容:

如题,在QWidget里重写QPainter后,画了一个双环圆,假设外圆半径为R1,内圆半径为R2,如何实现鼠标移动到外圆和内圆之间的区域,即R1-R2之间的区域时,这个区域就会改变颜色呢?具体代码如下:
void CWidget::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);
    int m_radius = 61
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing, true);
    int arcHeight = 16;//30;
    painter.translate(width()/2, this->height()*44/100);
    QColor color("#95DE64");    Q_UNUSED(color);
    this->drawCircle(&painter, m_radius, 0, 360, arcHeight, qRgb(149, 222, 100));
}
void CWidget::drawCircle(QPainter *painter, int radius, int startAngle, int angleLength, int arcHeight, QRgb color)
{
    painter->setBrush(QColor(color));
    //

回复 发表
主题 版块