主要内容 #
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. 小结 #
- 橡皮擦功能的编写
- 保存所绘制的图像
习题 #
- 无