主要内容 #
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. 小结 #
- 创建画布,并填充为白色。
 - 创建笔画的粗细,颜色,以及初始的坐标。
 - 绘图事件的编写。
 
习题 #
- 无