Qt cpp QPainter 绘制两个同心圆,中心的同心圆为实心,外围的为空心。外围圆在上下左右加上10px的线段
时间: 2024-02-18 18:00:51 浏览: 99
可以使用QPainter在QWidget或QPixmap上绘制两个同心圆,其中中心的同心圆为实心,外围的为空心,并在外围圆上下左右加上10px的线段。
以下是示例代码:
```cpp
void MyWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true); // 抗锯齿
// 绘制中心的实心圆
painter.setBrush(Qt::red);
painter.drawEllipse(width() / 2 - 50, height() / 2 - 50, 100, 100);
// 绘制外围的空心圆
painter.setBrush(Qt::NoBrush);
painter.setPen(QPen(Qt::red, 10));
painter.drawEllipse(width() / 2 - 70, height() / 2 - 70, 140, 140);
// 绘制上下左右的线段
painter.setPen(QPen(Qt::red, 10));
painter.drawLine(width() / 2, height() / 2 - 70, width() / 2, height() / 2 - 80); // 上
painter.drawLine(width() / 2, height() / 2 + 70, width() / 2, height() / 2 + 80); // 下
painter.drawLine(width() / 2 - 70, height() / 2, width() / 2 - 80, height() / 2); // 左
painter.drawLine(width() / 2 + 70, height() / 2, width() / 2 + 80, height() / 2); // 右
}
```
在该示例中,我们使用QPainter绘制两个同心圆,其中中心的同心圆使用红色实心填充,外围的同心圆则不填充(即为空心),使用红色边框线条,并且线条宽度为10px。我们还在外围圆的上下左右各绘制了一条10px宽的红色线段,以满足您的需求。
阅读全文