python如何用PYQT5在窗体上画图形并删除图形
时间: 2023-11-22 13:55:14 浏览: 42
在PYQT5中可以使用QPainter和QPaintEvent类来在窗体上画图形。
下面是一个简单的例子,演示如何在窗体上画一个矩形,并通过按钮删除它。
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtCore import Qt
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Drawing Shapes")
self.setGeometry(100, 100, 600, 400)
self.button = QPushButton("Delete Rectangle", self)
self.button.setGeometry(10, 10, 120, 30)
self.button.clicked.connect(self.delete_rectangle)
self.rectangle_drawn = False
def paintEvent(self, event):
painter = QPainter(self)
painter.setPen(QColor(0, 0, 0))
painter.setBrush(QColor(255, 0, 0))
if self.rectangle_drawn:
painter.drawRect(100, 100, 200, 100)
def delete_rectangle(self):
self.rectangle_drawn = False
self.update()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
```
在这个例子中,我们定义了一个继承自QMainWindow的窗口类Window。这个类中,我们定义了一个按钮和一个标记变量rectangle_drawn,用于记录矩形是否已经被画出来。
在paintEvent函数中,我们使用QPainter类来画出一个红色的矩形。当rectangle_drawn为True时,才会画出矩形。
在delete_rectangle函数中,我们将rectangle_drawn变量设为False,然后调用update函数,触发paintEvent函数重新绘制窗体。
这样,当我们点击按钮时,矩形就会被删除。