【问题标题】:Change the image in the Label in Tkinter using a function使用函数更改 Tkinter 标签中的图像
【发布时间】:2020-11-24 04:55:39
【问题描述】:

我正在 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_label中添加一张图片。

【问题讨论】:

    标签: python-3.x tkinter tkinter-label


    【解决方案1】:

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

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

    我使用的是 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2023-04-11
      • 1970-01-01
      相关资源
      最近更新 更多