pyqt5 qpainter清除
时间: 2023-08-24 11:07:05 浏览: 276
使用QPainter类的eraseRect方法可以清除绘画区域。以下是一个示例代码片段:
```
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtCore import Qt
class MyWidget(QWidget):
def __init__(self):
super().__init__()
def paintEvent(self, event):
painter = QPainter(self)
painter.setPen(Qt.NoPen)
painter.setBrush(QColor(255, 0, 0))
painter.drawRect(0, 0, self.width(), self.height())
def clear(self):
painter = QPainter(self)
painter.eraseRect(self.rect())
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.widget = MyWidget()
self.setCentralWidget(self.widget)
self.toolbar = self.addToolBar("Clear")
self.toolbar.addAction("Clear", self.clear)
def clear(self):
self.widget.clear()
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
在上述示例中,MyWidget类的paintEvent方法绘制一个红色矩形。MyWidget类还包含一个clear方法,该方法使用QPainter的eraseRect方法清除绘画区域。MyWindow类包含一个工具栏,其中包含一个清除按钮,该按钮调用MyWidget的clear方法以清除绘画区域。
阅读全文