主要内容 #
1. 画布模块的编写 #
首先需要在可以显示图像的窗口中添加画布。
在函数__init__(self)中添加画布的初始化
程序如下:
self.__QPixmap = QPixmap(QSize(800,800)) #设置画布大小为800*800 self.__QPixmap.fill(Qt.white) #用白色填充画布
2. 画笔模块的编写 #
在函数__init__(self)中对画笔的粗细和颜色进行初始化。
同时也要设置画笔在画布中最初的位置
程序如下:
#设置画笔在画布中最初的位置 #画笔最初位置设置为-60,是因为后续的程序中将设置画笔最粗为60个像素 #在画笔最粗时,也必须要在画布的坐标之外。在后续对笔画设置时会详细讲解 #绘制的图像是由多条直线构成的,所以要设置直线的起始和终点坐标 self.x1 = -60 #直线起始点的x坐标 self.y1 = -60 #直线起始点的y坐标 self.x2 = -60 #直线终点的x坐标 self.y2 = -60 #直线终点的y坐标 self.__thickness = 3 #默认画笔粗细为3px self.__penColor = QColor("aliceblue") #默认为爱丽丝蓝,因为默认在颜色列表中,第一个颜色就是爱丽丝蓝
3. 绘图事件的编写 #
编写绘图事件,目的是实现能够在画布中绘制想要的图案
本程序的功能主要是绘制直线
在类PaintImage中添加绘图事件的方法,程序如下:
# 绘图事件 def paintEvent(self, paintEvent): self.ImageView.setPixmap(self.__QPixmap) #在显示图像的窗口ImageView中添加画布__QPixmap painter = QPainter(self.__QPixmap) #声明一个QPainter对象 painter.setPen(QPen(self.__penColor, self.__thickness)) #设置QPainter对象中的画笔参数 painter.drawLine(self.x1, self.y1, self.x2, self.y2) #通过QPainter对象中的画直线的方法(drawLine)绘制直线 self.x2 = self.x1 #每次绘制完直线都将直线终点的x坐标更新为起始点的x坐标 self.y2 = self.y1 #每次绘制完直线都将直线终点的y坐标更新为起始点的y坐标
4. 小结 #
- 创建画布,并填充为白色。
- 创建笔画的粗细,颜色,以及初始的坐标。
- 绘图事件的编写。
习题 #
- 无