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