Free Hand Drawing Tool using Tkinter

 from tkinter import Tk, Canvas, Button, Frame, colorchooser


class DrawingApp:

    def __init__(self, root):

        self.root = root

        self.root.title("Drawing Tool")


        self.canvas = Canvas(self.root, bg="white", width=600, height=400)

        self.canvas.pack(expand=True, fill="both")


        self.frame = Frame(self.root)

        self.frame.pack()


        self.color_button = Button(self.frame, text="Choose Color", command=self.choose_color)

        self.color_button.pack(side="left")


        self.clear_button = Button(self.frame, text="Clear", command=self.clear_canvas)

        self.clear_button.pack(side="left")


        self.canvas.bind("<B1-Motion>", self.paint)

        self.canvas.bind("<ButtonRelease-1>", self.reset)


        self.pen_color = "black"

        self.last_x, self.last_y = None, None


    def choose_color(self):

        self.pen_color = colorchooser.askcolor(color=self.pen_color)[1]


    def paint(self, event):

        if self.last_x and self.last_y:

            self.canvas.create_line(self.last_x, self.last_y, event.x, event.y, fill=self.pen_color, width=2)

        self.last_x, self.last_y = event.x, event.y


    def reset(self, event):

        self.last_x, self.last_y = None, None


    def clear_canvas(self):

        self.canvas.delete("all")


if __name__ == "__main__":

    root = Tk()

    app = DrawingApp(root)

    root.mainloop()




Comments