pyqt5 qpainter绘制矩形
时间: 2024-12-24 19:39:45 浏览: 7
在PyQt5中,`QPainter` 是用于在各种图形目标上进行绘图的对象,例如 `QWidget`、`QImage` 或 `QPrinter`。要使用 `QPainter` 绘制矩形,你可以按照以下步骤操作:
1. 首先,创建一个 `QPainter` 实例并连接到你要绘制的图形对象。例如,如果你有一个 `QWidget`,可以这样做:
```python
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setGeometry(100, 100, 300, 300)
self.setWindowTitle('My Widget')
def paintEvent(self, event):
painter = QPainter(self) # 获取画刷,关联到窗口
```
2. 然后,在 `paintEvent` 方法中,你可以调用 `drawRect` 函数来绘制矩形。例如,绘制一个红色的矩形:
```python
painter.setPen(QColor("red")) # 设置笔的颜色
painter.drawRect(50, 50, 200, 100) # 绘制左上角坐标为(50, 50),宽度200,高度100的矩形
```
3. 别忘了最后调用 `event.accept()` 来处理事件,这是必要的,因为 `paintEvent` 是一个槽函数,需要接受事件来确保UI更新:
```python
event.accept()
```
如果你想在循环中绘制多个矩形,可以在每次循环迭代里调用 `drawRect`。
阅读全文