Python函数执行顺序错误,为什么?

时间:2017-12-03 23:38:46

标签: python tkinter

当我运行程序时,它首先等待直到我输入输入,然后它将播放声音,然后它显示带有我的图像的窗口。为什么这样做不按顺序?

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()

1 个答案:

答案 0 :(得分:1)

它们没有乱序。抛出一些print语句来查看它们正在执行的顺序。问题是在事件循环(mainloop)运行之前,tkinter没有机会更新显示。在您的代码中mainloop不会运行直到其他功能完成。

要强制显示更新,您可以拨打root.update_idletasks()