Python 3.x 使用函数更改Tkinter中标签中的图像

Python 3.x 使用函数更改Tkinter中标签中的图像,python-3.x,tkinter,tkinter-label,Python 3.x,Tkinter,Tkinter Label,我正在用Tkinter制作一个程序GUI,但我被困在这一部分 from Tkinter import * from PIL import Image, ImageTk def add_imgage(): player_label.destroy() player3_token = ImageTk.PhotoImage(Image.open('./gallery/Scissor_icon.jpg')) player_label = Label(vs_frame, imag

我正在用Tkinter制作一个程序GUI,但我被困在这一部分

from Tkinter import *
from PIL import Image, ImageTk

def add_imgage():
    player_label.destroy()
    player3_token = ImageTk.PhotoImage(Image.open('./gallery/Scissor_icon.jpg'))
    player_label = Label(vs_frame, image=player3_token, borderwidth=2, relief=GROOVE, width=50, height=50)

if __name__ == '__main__':
    root = Tk()

    SCREEN_HEIGHT = 500
    SCREEN_WIDTH = 800
    root.geometry(f"{SCREEN_WIDTH}x{SCREEN_HEIGHT}")
    root.title('test window')
    
    frame1 = Frame(root)
    frame1.pack(pady=30)

    player_label = Label(frame1, borderwidth=2, relief=GROOVE, width=10, height=5)
    player_label.pack(side=LEFT)


我想通过
add_image()
函数在
player_标签中添加图像。

首先;必须运行函数才能创建图像

然后,;没有必要销毁标签。您可以就地配置它。您还必须保存对映像的引用,否则当函数退出时,它将被垃圾收集

我正在使用Python3,因此我将名称
Tkinter
更改为
Tkinter
,没有首字母大写

from tkinter import *
from PIL import Image, ImageTk

def add_imgage():
    player3_token = ImageTk.PhotoImage(Image.open('images/jones.png'))
    player_label.config(image=player3_token, borderwidth=2, # Config the label
                         relief=GROOVE, width=50, height=50)
    player_label.image = player3_token  # Save reference to image

if __name__ == '__main__':
    root = Tk()

    SCREEN_HEIGHT = 500
    SCREEN_WIDTH = 800
    root.geometry(f"{SCREEN_WIDTH}x{SCREEN_HEIGHT}")
    root.title('test window')
    
    frame1 = Frame(root)
    frame1.pack(pady=30)

    player_label = Label(frame1, borderwidth=2, relief=GROOVE,
                         width=10, height=5)
    player_label.pack(side=LEFT)

    add_imgage()    # Run the function to add image