必须使窗口与声音信号开始同时出现。但在我的示例中,首先触发声音信号,只有在它之后才会出现窗口。
from tkinter import *
import winsound
window = Tk()
window.title("Test")
window.geometry("200x50")
def myfunc():
winsound.Beep(500,3000)
window.after(0, myfunc)
window.mainloop()
如何让这两个事件同时进行?使窗口与声音信号同时出现?
在您的代码中, window.after(0, myfunc) 行会阻塞代码,直到它完成,这就是为什么您的代码在声音完成之前不显示窗口 (window.mainloop()) 的原因。要解决此问题,您可以使用线程模块继续运行代码而不是阻塞。
from tkinter import *
import winsound
import threading
window = Tk()
window.title("Test")
window.geometry("200x50")
def myfunc():
winsound.Beep(500,3000)
threading.Thread(target=myfunc).start()
window.mainloop()