如何做出明确板功能的控件在pyqt5

如何做出明确板功能的控件在pyqt5

问题描述:

嗨每个人,我就PyQt5努力使GUI和我综合窗口小部件在主窗口中绘图,但我想用一个按钮来清除控件用于图纸我使用这个代码,但我不明白什么是错的,那似乎没有工作的感谢如何做出明确板功能的控件在pyqt5

class Drawer(QWidget): 
    newPoint = pyqtSignal(QPoint) 

    def __init__(self, parent=None): 
     QWidget.__init__(self, parent) 
     self.setAttribute(QtCore.Qt.WA_StaticContents) 
     self.modified = False 
     self.scribbling = False 
     imageSize = QtCore.QSize(9500, 9500) 
     h=400 
     w=400 
     self.image = QtGui.QImage() 
     self.image=QtGui.QImage(w,h,QtGui.QImage.Format_RGB32) 
     self.path = QPainterPath() 


    def setPenColor(self, newColor): 
     self.myPenColor = newColor 

    def setPenWidth(self, newWidth): 
     self.myPenWidth = newWidth 

    def clearImage(self): 

     self.image.fill(QtGui.qRgb(255, 255, 255)) ## switch it to else 
     self.modified = True 
     self.update() 


    def paintEvent(self, event): 
     painter = QPainter(self) 

     painter.setPen(QColor(0, 0, 0)) 

     painter.setFont(QFont('Decorative', 10)) 
     painter.drawImage(event.rect(), self.image) 
     painter.drawPath(self.path) 

    def mousePressEvent(self, event): 
     self.path.moveTo(event.pos()) 
     self.update() 

    def mouseMoveEvent(self, event): 
     self.path.lineTo(event.pos()) 
     self.newPoint.emit(event.pos()) 
     self.update() 

    def sizeHint(self): 
     return QSize(200, 200) 

您需要的时候你清除图像清路,否则油漆功能只是再次重绘相同的东西。

def clearImage(self): 
    self.path = QPainterPath() 
    self.image.fill(QtGui.qRgb(255, 255, 255)) ## switch it to else 
    self.modified = True 
    self.update()