gpt4 book ai didi

python - 如何在 python 的 tkinter 中用图像更新标签?

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:59 24 4
gpt4 key购买 nike

我有一个带有几个选项的下拉菜单和一个带有图像的标签。

我想根据从下拉菜单中选择的选项更改图像,但我无法弄清楚。

示例代码:

from Tkinter import*
import Tkinter as tk

def image():
list1=['im1.gif','im2.gif']
studDropDown['menu'].delete(0, "end")
for string in list1:
studDropDown['menu'].add_command(label=string,command=lambda value=string:studFiles.set(value))


app=Tk()
app.title("Example")
app.geometry('500x200+200+200')
app.configure(background='black')
app.resizable(0,0)

button1=Button(app,text='Press me',command=image)
button1.pack()


studFiles = StringVar()
studFiles.set('Image')
files =["Please Wait"]
studDropDown = OptionMenu(app, studFiles, *files)
studDropDown.config(font=("Times",16,"italic"))
studDropDown["menu"].config(font=("Times",16,"italic"))
studDropDown.pack()


photo =PhotoImage(file='im.gif')
label = Label(app,image=photo)

label.image = photo # keep a reference!
label.pack()

app.mainloop()

也许连用label来显示图片都不合适。

有什么想法吗?

最佳答案

这是一个基于您提供的代码的简单示例:

from Tkinter import *

def change_image(*args):
# Change image of label accordingly
label.config(image=photos[int(studFiles.get())])

app = Tk()
app.title("Example")
app.geometry('500x200+200+200')
app.configure(background='black')
app.resizable(0,0)

studFiles = StringVar()
studFiles.set('Image')
files =['0', '1'] # Number is corresponding list index
studDropDown = OptionMenu(app, studFiles, *files)
studDropDown.config(font=("Times", 16, "italic"))
studDropDown["menu"].config(font=("Times", 16, "italic"))
studDropDown.pack()

studFiles.trace("w", change_image)

# List of photoimages for each image
photos =(PhotoImage(file='im.gif'), PhotoImage(file='im2.gif'))
label = Label(app,image=photos[0])
label.pack()

app.mainloop()

您必须为每个想要的图形创建一个 PhotoImage 的列表/元组。您还必须跟踪您的 StringVar,以便您知道 OptionMenu 的值何时更改。然后您所要做的就是使用 config 方法设置标签的图像。

关于python - 如何在 python 的 tkinter 中用图像更新标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8107024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com