![](/img/trans.png)
[英]How can I display output from a button command in a new window using 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
函數或需要進行其他任何修改才能在fname
和fname1
之間切換圖像
要在單擊按鈕時更改圖像,請對按鈕使用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.