簡體   English   中英

在Tkinter按鈕命令上顯示新圖像

[英]Display new image on Tkinter button command

使用Tkinter ,如何在單擊按鈕時在圖像之間切換。 將此代碼作為參考,我只能加載一張圖像,但是我不知道如何使其表現出所需的方式。

from Tkinter import *
import ttk
from PIL import ImageTk, Image

def showImage(*args):
        lbl['image'] = image_tk

root = Tk()   
c = ttk.Frame(root, padding=(5, 5, 12, 0))
c.grid(column=0, row=0, sticky=(N,W,E,S))
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0,weight=1)

fname = "A.jpg"
fname1 = "B.jpg"
image_tk = ImageTk.PhotoImage(Image.open(fname))

btn = ttk.Button(c, text="load image", command=showImage)
lbl1 = ttk.Label(c)
btn.grid(column=0, row=0, sticky=N, pady=5, padx=5)
lbl.grid(column=1, row=1, sticky=N, pady=5, padx=5)

root.mainloop()

如何配置ShowImage函數或需要進行其他任何修改才能在fnamefname1之間切換圖像

要在單擊按鈕時更改圖像,請對按鈕使用configure()方法更改命令參數,並創建一個新的ImageTk對象,以保存第二張圖像的引用。

from Tkinter import *
import ttk
from PIL import ImageTk, Image    

def showImage():
        lbl1.configure(image=image_tk)
        btn.configure(text = "load image!", command=showImage1)

def showImage1(): 
        lbl1.configure(image=image_tk1)
        btn.configure(text = "load image!", command=showImage)     

root = Tk()    
c = ttk.Frame(root, padding=(5, 5, 12, 0))
c.grid(column=0, row=0, sticky=(N,W,E,S))
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0,weight=1)

fname = "a.jpg"
image_tk = ImageTk.PhotoImage(Image.open(fname))

fname1 = "b.jpg"
image_tk1 = ImageTk.PhotoImage(Image.open(fname1))  # new image object


btn = ttk.Button(c, text="load image", command=showImage)
lbl1 = ttk.Label(c)
btn.grid(column=0, row=0, sticky=N, pady=5, padx=5)
lbl1.grid(column=1, row=1, sticky=N, pady=5, padx=5)

root.mainloop()

暫無
暫無

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

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