跳至正文
View Categories

< 1 min read

主要内容 #

  • 橡皮檫功能
  • 保存图像
  • 1. 橡皮檫功能 #

    画图的时候难免会画错,这时就需要橡皮擦在功能,把画错的图像擦掉。
    之前的程序已经添加了橡皮擦功能的控件,即勾选框。
    只要勾选了橡皮擦功能控件,就将笔画的颜色设置为白色。
    用白色覆盖其它的颜色,看起来就好像是将其它颜色在图案给擦除了。

    在类PaintImage中添加橡皮擦的方法,程序如下:

        def Eraser(self):
            self.change = True  #当前更新了画笔的设置
            self.updateXY()     #将画笔的位置更新为最初位置
    
            if self.EraserButton.isChecked():  #如果选择了橡皮擦功能
                painter = QPainter(self.__QPixmap)   #声明一个QPainter对象
                self.__penColor = Qt.white           #设置画笔颜色的属性为白色
                painter.setPen(QPen(self.__penColor, self.__thickness))   #设置QPainter对象中的画笔参数
            else:
                painter = QPainter(self.__QPixmap)
                index = self.ComboBoxPenColor.currentIndex()   #获取当前颜色下拉框中的颜色
                color = self.__colorList[index]
                self.__penColor = QColor(color)
                painter.setPen(QPen(self.__penColor, self.__thickness))

    为QCheckBox控件的clicked方法连接到上述功能(即信号传递)
    在__initUI函数中添加该连接,程序如下:

    
            self.EraserButton.clicked.connect(self.Eraser)

    至此,在勾选橡皮擦功能后,画笔变成了白色。
    在画布上就可以使用白色擦除其它的颜色。

    2. 保存图像 #

    画好图像后,需要把作品保存起来。
    在类PaintImage中添加保存图像的方法,程序如下:

    
        def SaveImage(self):
            if self.__QPixmap != 0:   #当画布不为空的时候,将图像进行保存
                self.__QPixmap.save("MyDraw.jpg")   #将图像保存到当前程序所在的路径中,并命名为MyDraw.jpg文件

    为保存图像的控件QPushButton的clicked方法连接到上述功能(即信号传递)
    在__initUI函数中添加该连接,程序如下:

    
            self.ImageSaveButton.clicked.connect(self.SaveImage)

    当点击保存图像按钮后,会自动将画布中的图案保存到当前程序所在的路径中。
    并命名为MyDraw.jpg文件

    到此,一个简易的绘图程序就已经全部完成。

    3. 小结 #

    • 橡皮擦功能的编写
    • 保存所绘制的图像

    习题 #