from kivy.uix.behaviors import ToggleButtonBehavior
from kivy.uix.togglebutton import ToggleButton
from kivy.app import App
from kivy.graphics import Line, Color
from kivy.uix.widget import Widget
class FrameToggleButton(ToggleButton):
# 当前按钮添加边框
def do_press(self):
# 点击改变状态
if self.state == 'normal':
ToggleButtonBehavior.do_press(self)
class DrawCanvasWidget(Widget):
def __init__(self, **kwargs):
super().__init__(**kwargs)
# set default color
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)
def change_color(self, new_color):
# 调色
self.last_color = new_color
self.canvas.add(Color(*new_color))
def change_line_width(self, line_width='Normal'):
# 线宽
self.line_width = {'Thin': 1, 'Normal': 2, 'Thick': 4}[line_width]
def clear_canvas(self):
# 清屏
saved = self.children[:]
self.clear_widgets()
self.canvas.clear()
for widget in saved:
self.add_widget(widget)
self.change_color(self.last_color)
class PaintApp(App):
def build(self):
self.draw_canvas_widget = DrawCanvasWidget()
return self.draw_canvas_widget
if __name__ == '__main__':
pa = PaintApp()
pa.run()
用python+kivy实现简易的电子白板功能
需积分: 0 153 浏览量
更新于2024-09-24
收藏 2KB ZIP 举报
用python+kivy实现简易的白板功能:具有以下功能:
1.显示画笔轨迹
2.设置画笔的颜色,可选择10种颜色,可修改代码添加
3.设置线条的粗细,也叫线宽(提供三个选择:细、正常、粗)
4.清屏
sunch007
- 粉丝: 0
- 资源: 1
最新资源
- Python自动化测试基础知识合集
- (174871610)基于Linux使用C语言实现的局域网聊天室源码
- (175709604)微信小程序项目实例-微信商城小程序源码纯前端项目
- notepad++安装程序
- (176021214)MLP多层感知机时间序列预测(Matlab)所有程序经过验证,保证可以运行 1.data为数据集,一维时间序列数据 2.M
- 基于springboot的微服务的旅行社门店系统的设计实现源码(java毕业设计完整源码+LW).zip
- Java毕设项目:基于spring+mybatis+maven+mysql实现的鲸落文化线上体验馆前后台管理系统【含源码+数据库+毕业论文】
- (176059196)2、安装VMware虚拟机.pdf.zip
- 基于springboot的高校教学档案管理系统设计与实现源码(java毕业设计完整源码+LW).zip
- How to Make a Multiplayer Game with DOTS-Turbo Makes Games-Johnny Thompson
- (176968818)计算机毕业设计:Flask股票数据采集分析可视化系统 python+爬虫+金融数据
- 基于springboot的邑信闲置书本交易小程序的研制源码(java毕业设计完整源码+LW).zip
- (176968838)计算机毕业设计:python商品评论数据采集与分析可视化系统 Flask框架
- Java毕设项目:基于spring+mybatis+maven+mysql实现的学生宿舍管理系统【含源码+数据库+开题报告+毕业论文】
- 基于springboot的人事管理系统设计与实现源码(java毕业设计完整源码+LW).zip
- (177544620)智慧教室管理系统,django实现管理后台及rest api前端接口.zip