《Python+Kivy(App开发)从入门到实践》自学笔记:基本图形绘制——动手实践——画板——显示画笔轨迹

章节知识点总揽

3.5动手实践——画板

        画板主要功能:

                1.图像绘制

                2.颜色选择

                3.线宽选择

                4.添加按钮边框

                5.清屏

 

3.5.1 显示画笔轨迹

        新建一个main.py文件 ,内容如下:

from kivy.app import App
from kivy.graphics import Line,Color
from kivy.uix.widget import Widget


class DrawCanvasWidget(Widget):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)

class PaintApp(App):
    def build(self):
        self.canvas_widget = DrawCanvasWidget()
        return self.canvas_widget


if __name__ == '__main__':
    PaintApp().run()

        新建一个paint.kv文件,其中canvas画布设置背景为白色。因为还需要使用canvas画布在背景上绘画,所以设置背景时,采用canvas.before属性。具体如下:

<DrawCanvasWidget>:
	canvas.before:
		Color:
			rgba:[1,1,1,1]
		Rectangle:
			pos:self.pos
			size:self.size

        运行后,生成一个白色背景:

9e6b7729a38f4dedb1bb807188e20d24.png

         接下来,在DrawCanvasWidget类里,监听屏幕的点击和移动触发事件,这里使用的Kivy中提供的on_touch_down和on_touch_move()方法来实现。最后通过canvas画布把触摸屏幕的轨迹显示出来,即可并通过具体的线宽连城线,修改main.py文件,具体代码如下:

from kivy.app import App
from kivy.graphics import Line,Color
from kivy.uix.widget import Widget


class DrawCanvasWidget(Widget):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)
        #设置默认颜色
        self.canvas.add(Color(rgb=[0,0,0]))
        self.line_width = 2

    def on_touch_down(self,touch):
        #触摸显示轨迹
        if Widget.on_touch_down(self,touch):
            return
        with self.canvas:
            touch.ud['current_line'] = Line(points=(touch.x,touch.y),width=self.line_width)

    def on_touch_move(self,touch):
        #连线
        if 'current_line' in touch.ud:
            touch.ud['current_line'].points += (touch.x,touch.y)

class PaintApp(App):
    def build(self):
        self.canvas_widget = DrawCanvasWidget()
        return self.canvas_widget


if __name__ == '__main__':
    PaintApp().run()

将上述代码添加到DrawCanvasWidget类内,运行main.py文件,在显示的窗口中使用鼠标模拟触摸屏幕,结果如下图所示:

ea2b540f250045e287f5f67d54ad6fb9.png

上一篇:基本图形绘制——缩放坐标空间

下一篇:基本图形绘制——动手实践——画板——设置颜色

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静候光阴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值