当我运行程序时,它首先等待直到我输入输入,然后它将播放声音,然后它显示带有我的图像的窗口。为什么这样做不按顺序?
from tkinter import *
import winsound
main = Tk()
main.state('zoomed')
main.geometry("1366x768")
# Displays a gif.
def show():
dollar_canvas = Canvas(width=50, height=50, bg='lightgrey', highlightthickness=0)
dollar_canvas.place(x=850, y=25)
my_gif = PhotoImage(file='Dollar50x50.gif')
dollar_canvas.image = my_gif
dollar_canvas.create_image(0, 0, image=my_gif, anchor=NW)
# Accepts an input, such as enter.
def getinput():
a = input()
# Plays a ring sound.
def play():
winsound.PlaySound('money', winsound.SND_ALIAS)
show()
getinput()
play()
mainloop()
答案 0 :(得分:1)
它们没有乱序。抛出一些print语句来查看它们正在执行的顺序。问题是在事件循环(mainloop
)运行之前,tkinter没有机会更新显示。在您的代码中mainloop
不会运行直到其他功能完成。
要强制显示更新,您可以拨打root.update_idletasks()
。