Cách tạo hình ảnh có thể nhấp trong python

Aug 29 2020

Tôi là người mới bắt đầu lập trình hình ảnh python. Nếu tôi nhấp vào hình ảnh mà tôi cần hiển thị, bạn được nhấp vào hình ảnh 1. như vậy. những gì tôi đã cố gắng cho đến nay tôi đính kèm bên dưới. Nó không hoạt động, câu trả lời hiển thị img 1, img 1, img 1 luôn

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

Trả lời

1 CoolCloud Aug 29 2020 at 06:34

Hãy xem ví dụ này

Tại đây bạn có thể nhấp vào nút và nó cho bạn hiệu ứng nhấp vào hình ảnh.

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

Hy vọng nó đã giúp bạn

Chúc mừng