2017-10-18 6 views
0

こんにちは、私はGUIを作るためにPyQt5で作業しています。私はメインウィンドウで描画するためのウィジェットを統合しましたが、ボタンを使ってそのウィジェットをクリアしたいう、それはあなたがイメージをクリアしたときに、パスをクリアする必要があるおかげ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) 

答えて

1

を動作するようには思えない、そうでない場合はペイント機能、私はこのコードを使用しています描画が、私はそれと間違っているものを得ることはありません同じことをもう一度書き直してください。

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