标题: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));
//