在下面的代码中,我希望在按下按钮1后立即显示picture1.jpg。过了一段时间,我想显示picture2.jpg。在以下情况下,按下按钮1 5秒后,只显示picture2.jpg。我怎么换照片?在
from Tkinter import *
from PIL import Image, ImageTk
import time
def show_image():
while True:
image = Image.open("picture1.jpg")
tk_img = ImageTk.PhotoImage(image)
x = canvas.create_image(400, 300, image=tk_img)
canvas.itemconfigure(x, state=NORMAL)
# I want to show picture1.jpg now
time.sleep(5) #This is a dummy because it takes a while for picture2.jpg
#Now I can show picture2.jpg
image = Image.open("picture2.jpg")
tk_img = ImageTk.PhotoImage(image)
x = canvas.create_image(400, 300, image=tk_img)
canvas.itemconfigure(x, state=NORMAL)
yield
root = Tk()
canvas = Canvas(root, width=850, height=750)
canvas.grid(row=0, column=0)
button1 = Button(
root, text="Insert next device and then take a picture", command=show_image().next, anchor='w',
width=50, activebackground="#33B5E5" ,fg = "blue" , font=("Arial", 24))
button1.grid(row=1, column=0)
root.mainloop()
首先,作为一般规则,您不应该在GUI的主线程中调用
sleep
。它会导致你的整个程序暂停按钮不起作用,屏幕不会更新,等等在未来有一段路要走。更改图像,然后使用此函数稍后将其更改回原处。粗略地说,应该是这样的:
相关问题 更多 >
编程相关推荐