簡體   English   中英

如何使用tkinter在python中更改標簽中的圖像?

[英]How to change image in a Label in python using tkinter?

我在標簽中有一個圖像,並且我希望在按下按鈕時更改該圖像,但不要更改圖像,而是將窗口變為空白:

from tkinter import *
from PIL import Image,ImageTk
import os
root = Tk()
root.state("zoomed")
def chng():
    photo2 = ImageTk.PhotoImage(Image.open("upload.jpg"))
    img.config(image = photo2) 
    img.grid() 
photo = ImageTk.PhotoImage(Image.open("cat.jpg"))
img = Label(root,image = photo)
upload = Button(root, text= "Upload" ,height = 3, width = 12, command = 
chng)
upload.grid( )
for col_num in range(root.grid_size()[1]):
    root.columnconfigure(col_num, minsize=600)
for row_num in range(root.grid_size()[1]):
    root.rowconfigure(row_num, minsize=60)
img.grid() 
root.mainloop()

您必須保留對圖像的引用。

def chng():
    photo2 = ImageTk.PhotoImage(Image.open("upload.jpg"))
    img.config(image = photo2) 
    img.photo_ref = photo2 # keep a reference

而且您不需要額外的grid()調用。

嘗試這個:

def chng():
    photo2 = ImageTk.PhotoImage(Image.open("upload.jpg"))
    img.config(image = photo2) 
    img.grid()
    root.update_idletasks()
import Tkinter as tk
from PIL import Image

class Application(tk.Frame):
    def __init__(self, master=None):
    tk.Frame.__init__(self, master)
    self.grid(row=5,column=2)
    self.createWidgets()
    top = self.winfo_toplevel()
def createWidgets(self):
    self.grid()

app = Application()
simge = tk.PhotoImage(file="bg.png")
hira1 = tk.Label(image=simge)
hira1.grid(row=0,column=0,rowspan=5)

def manu1(event):
    simen1=tk.PhotoImage(file="bg1.png")
    hira1.configure(image=simen1)
    hira1(image=simen1)

hira1.bind("<Button 1>",manu1)
app.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM