QPainter画不填充的圆
时间: 2024-01-01 16:06:36 浏览: 51
您可以使用QPainter的drawEllipse函数来画不填充的圆。下面是一个示例代码:
```python
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtCore import Qt
# 在paintEvent中调用此函数
def drawCircle(self, painter):
# 设置画笔颜色和宽度
pen = QPen(QColor(255, 0, 0), 2)
painter.setPen(pen)
# 设置填充颜色为透明
painter.setBrush(Qt.transparent)
# 绘制圆形
painter.drawEllipse(100, 100, 50, 50)
```
在上面的示例代码中,我们首先创建了一个QPen对象来设置画笔颜色和宽度。然后,我们将画笔设置为绘制圆形时的画笔。接下来,我们将填充颜色设置为透明,以便不填充圆形。最后,我们使用drawEllipse函数绘制圆形,它需要四个参数:圆的左上角坐标和宽度和高度。
相关问题
C++ QPainter画不填充的圆
使用QPainter绘制不填充的圆,需要使用QPen来设置画笔的样式,例如线条的颜色、宽度等。然后使用QPainter的drawEllipse()函数来绘制圆。
以下是一个示例代码:
```c++
QPainter painter(this);
QPen pen(Qt::black, 2); // 设置画笔,黑色,宽度为2
painter.setPen(pen);
painter.drawEllipse(QPointF(100, 100), 50, 50); // 绘制圆,中心点为(100,100),半径为50
```
这样就可以绘制一个不填充的圆了。
C++ QPainter画填充的圆
以下是用QPainter画填充的圆的示例代码:
```cpp
#include <QPainter>
#include <QBrush>
#include <QPen>
#include <QWidget>
void MyWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true); // 抗锯齿
QBrush brush(Qt::red); // 定义红色刷子
painter.setBrush(brush); // 设置画刷
QPen pen(Qt::black); // 定义黑色画笔
painter.setPen(pen); // 设置画笔
QPoint center(width() / 2, height() / 2); // 圆心坐标
int radius = 100; // 圆半径
painter.drawEllipse(center, radius, radius); // 画填充的圆
}
```
在这个示例中,我们首先创建了一个QPainter对象,并设置了抗锯齿。然后,我们定义了一个红色的QBrush和一个黑色的QPen,并将它们分别设置为画刷和画笔。
接下来,我们定义了圆的中心坐标和半径,并使用drawEllipse函数画了一个填充的圆。这个函数的第一个参数是圆心坐标,第二个和第三个参数是圆的半径。由于我们已经设置了画刷,所以圆将被填充为红色。
最后,我们在paintEvent函数中调用这个画图函数来绘制圆。