from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from random import random
from kivy.core.window import Window
from kivy.graphics import (Color, Ellipse, Rectangle, Line)
class PainterWidget(Widget):
def on_touch_down(self, touch):
with self.canvas:
Color(random(), random(), random(), 1)
rad = 30
Ellipse(pos = (touch.x - rad/2, touch.y - rad/2), size = (rad, rad))
touch.ud['line'] = Line(points = (touch.x, touch.y), width = 15)
def on_touch_move(self, touch):
touch.ud['line'].points += (touch.x, touch.y)
class PaintApp(App):
def build(self):
parent = Widget()
self.painter = PainterWidget()
parent.add_widget(self.painter)
parent.add_widget(Button(text = 'Clear' , on_press = self.clear_canvas, size = (100, 50)))
parent.add_widget(Button(text = 'Save' , on_press = self.save, size = (100, 50), pos = (100, 0)))
parent.add_widget(Button(text = 'Screen', on_press = self.screen, size = (100, 50), pos=(200, 0 )))
color_lab = Label(self, text="Color: ")
color_lab.grid(row=0, column=0, padx=6)
red_btn = Button(self, text = "Red", width=10)
red_btn.grid(row=0, column=1)
return parent
def clear_canvas(self, instance):
self.painter.canvas.clear()
def save(self, instance):
self.painter.size = (Window.size[0], Window.size[1])
self.painter.export_to_png('mage.png')
def screen(self, instance):
Window.screenshot('screen.png')
def main():
root = Tk()
root.geometry("1920x1080+300+300")
app = paint(root)
root.mainloop()
if __name__ == '__main__':
PaintApp().run()