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é