Cara membuat Gambar yang Dapat Diklik dengan python

Aug 29 2020

Saya seorang pemula dalam pemrograman gambar python. Jika saya klik gambar yang saya butuhkan untuk menampilkan gambar yang diklik 1. seperti itu. apa yang saya coba sejauh ini saya lampirkan di bawah ini. Ini tidak berfungsi jawaban selalu ditampilkan img 1, img 1, img 1

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()

Jawaban

1 CoolCloud Aug 29 2020 at 06:34

Lihat contoh ini

Di sini Anda dapat mengklik tombol dan ini memberi Anda efek mengklik gambar.

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()

Semoga membantu Anda

Bersulang