Python 如何使图像在Tkinter中可单击?

Python 如何使图像在Tkinter中可单击?,python,tkinter,Python,Tkinter,目前,代码从文件夹中选择图像并将其显示在tkinter窗口中。我可以单击“下一幅图像”查看文件夹中的下一幅图像。我想使图像可点击,这样它会带我到一个指定的链接。我可以让它点击,但不知道如何绑定到每个图像的不同链接。如果我将图像随机化(计划稍后再这样做),会让人感到困惑 将tkinter作为tk导入 从tkinter.filedialog导入askdirectory 导入操作系统 img_列表=[] def保存到列表(事件): 单击_loc=[event.x,event.y] 打印(“您点击”,点

目前,代码从文件夹中选择图像并将其显示在tkinter窗口中。我可以单击“下一幅图像”查看文件夹中的下一幅图像。我想使图像可点击,这样它会带我到一个指定的链接。我可以让它点击,但不知道如何绑定到每个图像的不同链接。如果我将图像随机化(计划稍后再这样做),会让人感到困惑

将tkinter作为tk导入
从tkinter.filedialog导入askdirectory
导入操作系统
img_列表=[]
def保存到列表(事件):
单击_loc=[event.x,event.y]
打印(“您点击”,点击位置)
img_列表。附加(单击位置)
def next_img():
img_label.img=tk.PhotoImage(文件=next(imgs))
img_label.config(image=img_label.img)
root=tk.tk()
根几何体('500x500')
#选择多个图像
img_dir=askdirectory(父目录=root,initialdir=“/yoga_Images/”,title='Choose folder')
os.chdir(img_dir)
imgs=iter(os.listdir(img_dir))
img_label=tk.label(根)
img_label.pack()
img\u label.bind(“,将\u保存到\u列表)
btn=tk.Button(root,text='Next image',command=Next\u img)
btn.pack()
下一个(img)
root.mainloop()

创建按钮时,只需指定图像对象即可

from PIL import Image, ImageTk
import tkinter as tk

def example():
    print("Clickable Image!")

root = tk.Tk()

image = Image.open("image.png")
btnPhoto= ImageTk.PhotoImage(image)

imgBtn = tk.Button(root, image=btnPhoto, command=example)
imgBtn.pack()

root.mainloop()
下面是一些代码,如果你想制作多个可点击的图像,别忘了指定你的图像目录(抱歉使用列表理解,我知道它们有点混乱)


什么是img标签。绑定(“,保存到列表)和
??我认为,
img\u label.img
应该是
img\u label.image
1。更新了代码还请注意,
tk.PhotoImage(..)
仅适用于png和GIF,否则您必须使用
PIL.ImageTk.PhotoImage
所有我的图像都是。png@CoolCloud:
img\u-label.img
img\u-label.image
这两种方法都有效,就像
image\u-label.任何其他方法一样
。属性不是tkinter的一部分,它是一个自定义属性。谢谢Glatinis!它只适用于一个图像。我希望文件夹中的每个图像都有自己指定的url。有没有关于如何进行的线索?
from PIL import Image, ImageTk
import tkinter as tk

def example():
    print("Clickable Image!")

root = tk.Tk()

image = Image.open("image.png")
btnPhoto= ImageTk.PhotoImage(image)

imgBtn = tk.Button(root, image=btnPhoto, command=example)
imgBtn.pack()

root.mainloop()
from PIL import Image, ImageTk
import tkinter as tk
import os


def example():
    print("Clickable Image!")


root = tk.Tk()

imgDir = "imgs"
images = [ImageTk.PhotoImage(Image.open(os.path.join(imgDir, imgName))) for imgName in os.listdir(imgDir)]

for img in images:
    imgBtn = tk.Button(root, image=img, command=example)
    imgBtn.pack()


root.mainloop()