【发布时间】:2017-06-05 15:01:50
【问题描述】:
我需要用 QPainter 画一个圆。当我使用 drawEllipse 函数时:
void UserClass::Draw(QPainter &painter) {
painter.save();
painter.setBrush( GetColor() );
QPoint centerPosition = GetCenterPosition();
painter.drawEllipse( centerPosition, m_CircleOuterRadius, m_CircleOuterRadius);
painter.setBrush(QColor(0, 0, 0, 0));
painter.drawEllipse( centerPosition, m_CircleInnerRadius, m_CircleInnerRadius);
painter.restore();
}
不幸的是,结果不是我想要的。我想让内圈不被填满。这就是为什么我将 alpha 值设为零,但它当然不起作用。我怎样才能有一个圆直到某个半径才 qt ?
【问题讨论】:
-
“当然没用” 不是问题陈述。请具体。
-
我想说更好的方法是创建 QPainterPath 并使用 QPainetr::fillPath
-
你需要空笔刷
painter.setBrush(QBrush());或C++11风格:painter.setBrush({});和一些笔painter.setPen(GetColor());。 -
@MarekR 但是我猜一个空的刷子也不会给我输出部分。因此不会是我需要的,
-
外部是用钢笔绘制的。我已经写过了。