1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
# Fenêtre
root = Tk()
Largeur = 1200
Hauteur = 800
canvas = Canvas(root, width=Largeur, height=Hauteur, background="white")
canvas.pack(side=LEFT, padx=5, pady=5)
root.resizable(width=False, height=False)
root.title('Heating Draw')
# Définition des menus Tkinter
def Ouvrir():
filename = tkinter.filedialog.askopenfilename(title="Ouvrir une image",filetypes=[('gif files', '.gif'), ('all files','.*')])
print(filename)
photo = PhotoImage(file=filename)
gifdict[filename] = photo # référence
print(gifdict)
canvas.create_image(0, 0, anchor=NW, image=photo)
canvas.config(height=photo.height(),width=photo.width())
root.title("Image "+str(photo.width())+" x "+str(photo.height()))
def Fermer():
canvas.delete(ALL)
root.title("Image")
def Apropos():
tkinter.messagebox.showinfo("Info")
# Capture des clics de la souris
def action_clic_souris(event):
canvas.focus_set()
x = event.x
y = event.y
i = x // 20 * 20 + 5
j = y // 20 * 20 + 5
print("Clic à x =", i, "Clic à y =", j)
canvas.create_rectangle(i, j, i + 10, j + 10, fill="red")
# Création d'un fichier qui stock la valeur de x et y
with open("valeur_x_y.txt", "a+") as file:
file.write(str(i))
file.write(" ")
file.write(str(j))
file.write("\n")
file.close()
return
# Module d'ouverture
menubar = Menu(root)
menufichier = Menu(menubar,tearoff=0)
menufichier.add_command(label="Ouvrir une image",command=Ouvrir)
menufichier.add_command(label="Fermer l'image",command=Fermer)
menufichier.add_command(label="Quitter",command=root.destroy)
menubar.add_cascade(label="Fichier", menu=menufichier)
menuaide = Menu(menubar,tearoff=0)
menuaide.add_command(label="A propos",command=Apropos)
menubar.add_cascade(label="Aide", menu=menuaide)
# Affichage du menu
root.config(menu=menubar)
# Utilisation d'un dictionnaire pour conserver une référence
gifdict={}
# Ajout d'une grille 10x10
grid_size = 10
while grid_size <= Hauteur:
line_1 = canvas.create_line(Largeur, grid_size, 0, grid_size, fill="grey")
grid_size += 10
grid_size = 10
while grid_size <= Largeur:
line_2 = canvas.create_line(grid_size, Hauteur, grid_size, 0, fill="grey")
grid_size += 10
# Association clic/action
canvas.bind("<Button-1>", action_clic_souris)
# Lancement
root.mainloop() |
Partager