Comment créer une image cliquable en python
Aug 29 2020
Je suis un débutant en programmation d'images python. Si je clique sur l'image dont j'ai besoin pour afficher vous êtes cliqué sur l'image 1. comme ça. ce que j'ai essayé jusqu'à présent, je l'ai joint ci-dessous. Cela ne fonctionne pas. Réponse affichée img 1, img 1, img 1 toujours
from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk
root = Tk()
canvas = Canvas(root, width=600, height=600)
canvas.pack()
def click() :
canvas.img = img
canvas.img1 = img1
canvas.img2 = img2
if(canvas.img):
print("img 1")
elif(canvas.img1):
print("2")
else :
print("3")
img_file = Image.open("1.jpg")
img_file = img_file.resize((150, 150) )
img = ImageTk.PhotoImage(img_file )
canvas.create_image(10, 50, anchor=NW, image=img)
img_file1 = Image.open("2.jpg")
img_file1 = img_file1.resize((150, 150))
img1 = ImageTk.PhotoImage(img_file1)
canvas.create_image(200, 50, anchor=NW, image=img1)
img_file2 = Image.open("3.jpg")
img_file2 = img_file2.resize((150, 150))
img2 = ImageTk.PhotoImage(img_file2)
canvas.create_image(400, 50, anchor=NW, image=img2)
Button(root, text="Add",command = click,height=3, width= 13).place(x=190, y=260)
root.mainloop()
Réponses
1 CoolCloud Aug 29 2020 at 06:34
Jetez un œil à cet exemple
Ici, vous pouvez cliquer sur le bouton et cela vous donne un effet de cliquer sur l'image.
from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk
root = Tk()
canvas = Canvas(root, width=600, height=600)
canvas.pack()
def main(event):
if event.widget.cget('image') == 'pyimage1':
messagebox.showinfo('First','You clicked the first image')
elif event.widget.cget('image') == 'pyimage2':
messagebox.showinfo('Second','You clicked the second image')
elif event.widget.cget('image') == 'pyimage3':
messagebox.showinfo('Third','You clicked the third image')
img_file = Image.open("sad songs.jpg")
img_file = img_file.resize((150, 150))
img = ImageTk.PhotoImage(img_file)
b1 = Button(canvas, image=img)
b1.pack()
b1.bind('<Button-1>', main)
img_file1 = Image.open("feeling wallpapers.jpg")
img_file1 = img_file1.resize((150, 150))
img1 = ImageTk.PhotoImage(img_file1)
b2 = Button(canvas, image=img1)
b2.pack()
b2.bind('<Button-1>', main)
img_file2 = Image.open("sad songs.jpg")
img_file2 = img_file2.resize((150, 150))
img2 = ImageTk.PhotoImage(img_file2)
b3 = Button(canvas, image=img2)
b3.pack()
b3.bind('<Button-1>', main)
root.mainloop()
J'espère que ça t'a aidé
À votre santé