QPointF实现画圆
时间: 2023-12-20 15:07:20 浏览: 73
QPointF是Qt中表示2D坐标点的类,用于在平面直角坐标系中表示一个点的坐标。如果要使用QPointF来绘制圆形,可以通过计算圆周上的点坐标来实现。
示例代码:
```cpp
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true); // 抗锯齿
QPen pen(Qt::black, 2); // 设置画笔颜色和线宽
painter.setPen(pen);
QBrush brush(Qt::red); // 设置画刷颜色
painter.setBrush(brush);
QPointF center(150, 150); // 圆心坐标
qreal radius = 100; // 半径
// 绘制圆形
const int pointCount = 360; // 圆周上点的数量
QVector<QPointF> points;
for (int i = 0; i < pointCount; ++i) {
qreal x = center.x() + radius * qCos(qDegreesToRadians(i));
qreal y = center.y() + radius * qSin(qDegreesToRadians(i));
points << QPointF(x, y);
}
painter.drawPolygon(points);
}
```
上述代码中,我们在QWidget的paintEvent事件中绘制一个圆形,首先创建了一个QPainter对象,并设置了画笔和画刷的颜色,然后通过计算圆周上的点坐标,使用QVector<QPointF>存储这些点,最后通过QPainter的drawPolygon函数绘制圆形。其中,圆心坐标和半径可以根据实际需求进行设置。
阅读全文