J'avais envie de l'application de dessin d'un professeur et je me demandais si je pouvais faire quelque chose moi-même.
Système complet
import tkinter class Scribble:
--Cliquez gauche pour dessiner un point --Sx.sy se trouve actuellement
def on_pressed(self, event):
self.sx = event.x
self.sy = event.y
self.canvas.create_oval(self.sx, self.sy, event.x, event.y,
outline = self.color.get(),
width = self.width.get())
def on_dragged(self, event):
self.canvas.create_line(self.sx, self.sy, event.x, event.y,
fill = self.color.get(),
width = self.width.get())
self.sx = event.x
self.sy = event.y
--Cliquez au milieu pour créer un cercle, cliquez avec le bouton droit pour créer une ellipse
def click1(self,event):
self.canvas.create_oval(self.sx-20,self.sy-20,self.sx+20,self.sy+20,
fill = self.color.get(),
width = self.width.get())
def click2(self,event):
self.canvas.create_oval(self.sx-40,self.sy-30,self.sx+40,self.sy+30,
fill = self.color.get(),
width = self.width.get())
def create_window(self):
window = tkinter.Tk()
window.title("Logiciel de dessin")
self.canvas = tkinter.Canvas(window, bg = "black",
width = 600, height = 400)
self.canvas.pack()
quit_button = tkinter.Button(window, text = "Fin",
command = window.quit)
quit_button.pack(side = tkinter.RIGHT)
self.canvas.bind("<ButtonPress-1>", self.on_pressed)
self.canvas.bind("<B1-Motion>", self.on_dragged)
self.canvas.bind("<ButtonPress-2>",self.click1)
self.canvas.bind("<ButtonPress-3>",self.click2)
--Placer l'objet du menu d'options dans la fenêtre
COLORS = ["red", "white", "blue", "pink", "green","black"]
self.color = tkinter.StringVar()
self.color.set(COLORS[1])
b = tkinter.OptionMenu(window, self.color, *COLORS)
b.pack(side = tkinter.LEFT)
--Placer l'objet d'échelle dans la fenêtre
self.width = tkinter.Scale(window, from_ = 1, to = 10,
orient = tkinter.HORIZONTAL)
self.width.set(5)
self.width.pack(side = tkinter.LEFT)
return window;
def __init__(self):
self.window = self.create_window();
def run(self):
self.window.mainloop()
Scribble().run()
import tkinter
class Scribble:
def on_pressed(self, event):
self.sx = event.x
self.sy = event.y
self.canvas.create_oval(self.sx, self.sy, event.x, event.y,
outline = self.color.get(),
width = self.width.get())
def on_dragged(self, event):
self.canvas.create_line(self.sx, self.sy, event.x, event.y,
fill = self.color.get(),
width = self.width.get())
self.sx = event.x
self.sy = event.y
def click1(self,event):
self.canvas.create_oval(self.sx-20,self.sy-20,self.sx+20,self.sy+20,
fill = self.color.get(),
width = self.width.get())
def click2(self,event):
self.canvas.create_oval(self.sx-40,self.sy-30,self.sx+40,self.sy+30,
fill = self.color.get(),
width = self.width.get())
def create_window(self):
window = tkinter.Tk()
window.title("Logiciel de dessin")
self.canvas = tkinter.Canvas(window, bg = "black",
width = 600, height = 400)
self.canvas.pack()
quit_button = tkinter.Button(window, text = "Fin",
command = window.quit)
quit_button.pack(side = tkinter.RIGHT)
self.canvas.bind("<ButtonPress-1>", self.on_pressed)
self.canvas.bind("<B1-Motion>", self.on_dragged)
self.canvas.bind("<ButtonPress-2>",self.click1)
self.canvas.bind("<ButtonPress-3>",self.click2)
COLORS = ["red", "white", "blue", "pink", "green","black"]
self.color = tkinter.StringVar()
self.color.set(COLORS[1])
b = tkinter.OptionMenu(window, self.color, *COLORS)
b.pack(side = tkinter.LEFT)
self.width = tkinter.Scale(window, from_ = 1, to = 10,
orient = tkinter.HORIZONTAL)
self.width.set(5)
self.width.pack(side = tkinter.LEFT)
return window;
def __init__(self):
self.window = self.create_window();
def run(self):
self.window.mainloop()
Scribble().run()
https://www.nslabs.jp/monkey-python-02b.rhtml J'ai été autorisé à faire référence.
J'ai essayé de dessiner avec trois boutons de souris.
Je voulais ajouter un bouton pour revenir en arrière et une fonction de correction à main levée, mais je ne pouvais pas beaucoup ajouter le code car je ne comprenais pas le code. Je veux me concentrer sur Python pendant les vacances d'été et profiter du plaisir que je peux faire par moi-même.
https://www.nslabs.jp/monkey-python-02b.rhtml