• kivy画板


    from kivy.app import App
    from kivy.graphics import Line, Color   # 引入绘图线条,颜色
    from kivy.uix.widget import Widget    # 引入控件
    from kivy.lang import Builder
    from kivy.utils import get_color_from_hex
    
    Builder.load_string("""
    #:import C kivy.utils.get_color_from_hex
    <DrawCanvasWidget>:
        canvas.before:
            # 最下面纸的颜色
            Color:
                rgba:[1,1,1,1]
            # 形状
            Rectangle:
                # 位置
                pos:self.pos
                # 大小
                size:self.size
        Button:
            background_color:C('#FF0000')
            text:'1'
    
    """)
    
    
    # 布局类
    class DrawCanvasWidget(Widget):
        def __init__(self, **kwargs):
            super().__init__(**kwargs)
            # 1.设置默认颜色,在画布中加入颜色  16进制写法    # 画笔的颜色
            new_color = get_color_from_hex('#FF0000')
            self.canvas.add(Color(*new_color))
            # 1.设置默认颜色,在画布中加入颜色  十进制写法传入0到1的浮点数
            # self.canvas.add(Color(rgb=[0,0,0]))
    
            self.line_width = 1   # 线宽
    
        # 触摸显示轨迹
        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.draw_canvas_widget = DrawCanvasWidget()
            return self.draw_canvas_widget
    
    
    if __name__ == '__main__':
    
        PaintApp().run()
  • 相关阅读:
    CSS面试题总结
    HTML面试题总结
    JS中如何删除某个元素下的所有子元素(节点)?
    JS apply() call() bind()方法的使用
    JS小游戏--贪吃蛇
    Tensorflow——tf.train.exponential_decay函数(指数衰减法)
    自定义属性
    JS中兼容代码总结---更新中
    测试flex的各种属性
    添加网络打印机_批处理文件
  • 原文地址:https://www.cnblogs.com/vip136510786/p/14817145.html
Copyright © 2020-2023  润新知