【发布时间】:2019-06-23 18:17:34
【问题描述】:
我正在使用 python 编写的一个小程序旨在以特定顺序显示一系列图像和音频剪辑。我可以在同一个窗口中显示两个图像,一个按预期覆盖另一个,但我正在寻找一种方法让第二个图像在一定时间(30 秒)后出现,而不是尽快出现当程序运行时。不过,我似乎无法让名为 textBox.jpg 的第二张图片与程序的其余部分分开运行。
为了尝试解决这个问题,我输入了sleep() 函数,但这只是延迟了整个代码的启动。
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk
import time
# Title/Main
window = Tk()
window.title("Just Monika")
window.configure(background="black")
# control window size to make full-screen
width_value=window.winfo_screenwidth()
height_value=window.winfo_screenheight()
window.geometry("%dx%d+0+0" % (width_value, height_value))
# Monika photo
# this block will allow the image to resize to fit the window's size
# indefinitely
def resize_image(event):
new_width = event.width
new_height = event.height
image = copy_of_image.resize((new_width, new_height))
photo = ImageTk.PhotoImage(image)
label.config(image = photo)
label.image = photo #avoid garbage collection
monika = Image.open("C:\\Python Programs\\Just Monika\\Images\\justMonika.png")
copy_of_image = monika.copy()
photo = ImageTk.PhotoImage(monika)
label = ttk.Label(window, image = photo)
label.bind('<Configure>', resize_image)
label.pack(fill=BOTH, expand=YES)
# text box image
textBox = Image.open("C:\\Python Programs\\Just Monika\\Images\\textBox.jpg")
tkTextBox = ImageTk.PhotoImage(textBox)
panel1 = Label(window, image = tkTextBox)
panel1.place(x=675, y=300)
time.sleep(30)
我希望在程序运行大约 30 秒并且另一张图像已经显示后调用第二张图像 textBox.jpg。
【问题讨论】:
-
使用 tkinter
after()函数:effbot.org/tkinterbook/widget.htm#Tkinter.Widget.after-method