qframe 绘图_PyQt5利用QPainter绘制各种图形
时间: 2023-12-19 16:05:11 浏览: 104
PyQt5中的QPainter提供了丰富的绘图功能,可以用于绘制各种图形,包括直线、矩形、圆形、椭圆、多边形、贝塞尔曲线等。下面分别介绍这些图形的绘制方法。
### 直线
绘制直线可以使用QPainter的drawLine()方法。该方法需要指定直线的起点和终点坐标。
```python
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtCore import Qt
pen = QPen(Qt.black) # 创建画笔对象
pen.setWidth(2) # 设置画笔宽度
painter = QPainter() # 创建画家对象
painter.begin(self) # 开始绘画
painter.setPen(pen) # 设置画笔
painter.drawLine(0, 0, 100, 100) # 绘制直线
painter.end() # 结束绘画
```
### 矩形
绘制矩形可以使用QPainter的drawRect()方法。该方法需要指定矩形左上角坐标和矩形的宽度和高度。
```python
painter.drawRect(50, 50, 100, 100) # 绘制矩形
```
### 圆形
绘制圆形可以使用QPainter的drawEllipse()方法。该方法需要指定圆形的外接矩形。
```python
painter.drawEllipse(50, 50, 100, 100) # 绘制圆形
```
### 椭圆
绘制椭圆可以使用QPainter的drawEllipse()方法。该方法需要指定椭圆的外接矩形。
```python
painter.drawEllipse(50, 50, 100, 50) # 绘制椭圆
```
### 多边形
绘制多边形可以使用QPainter的drawPolygon()方法。该方法需要指定多边形的各个顶点坐标。
```python
points = [QPoint(50, 50), QPoint(100, 50), QPoint(100, 100), QPoint(50, 100)]
painter.drawPolygon(points) # 绘制多边形
```
### 贝塞尔曲线
绘制贝塞尔曲线可以使用QPainter的drawBezierCurve()方法。该方法需要指定曲线的起点、控制点和终点坐标。
```python
painter.drawBezierCurve(50, 50, 75, 100, 125, 100, 150, 50) # 绘制贝塞尔曲线
```
以上是QPainter绘制各种图形的方法,你可以根据需要进行选择和组合。
阅读全文