我想在tkinter中显示一个图像

2024-06-23 18:51:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个下拉列表。对于我从下拉列表中选择的每个项目,我都会在下拉列表下方显示一个与该项目相关的图像。我可以单独做,但不知道如何在tkinter中将它们放在一起

import tkinter as tk
from PIL import Image, ImageTk
fruitslist = [
    "apple",
    "orange",
    "grapes",
    "banana"
]

root = tk.Tk()

root.geometry('100x200')

def selc(event):
    if clicked.get() == "orange":
        img = ImageTk.PhotoImage(Image.open("image.jpg"))
        la.configure(image=img)
        la.image = img
    else:
        print("no image")
        
la = tk.Label(root, text="hi")

clicked = tk.StringVar(root)
clicked.set(fruitslist[0])

drop = tk.OptionMenu(root, clicked, *fruitslist, command = selc)
drop.pack()

root.mainloop()

Tags: 项目imageimport列表imgtkinterrootla
1条回答
网友
1楼 · 发布于 2024-06-23 18:51:03

您可以将命令设置为OptionMenu,并根据选择处理函数中的所有图像更改逻辑

import tkinter as tk
from PIL import ImageTk, Image

fruitslist = [
    "apple",
    "orange",
    "grapes",
    "banana"
]

app = tk.Tk()

fruits_dict = {}
for fruit_name in fruitslist:
    fruits_dict[fruit_name] = ImageTk.PhotoImage(Image.open("{}.png".format(fruit_name)))

app.geometry('100x200')

variable = tk.StringVar(app)
variable.set(fruitslist[0])


def change_image(e):
    print(e)  # selected option
    # print(variable.get())  # Also you can retrieve selected option from the var
    # Change image here
    my_image.config(image=fruits_dict[e])


opt = tk.OptionMenu(app, variable, *fruitslist, command=change_image)
opt.config(width=90, font=('Helvetica', 12))
opt.pack()

my_image = tk.Label(app)
my_image.pack()

app.mainloop()

相关问题 更多 >

    热门问题