为什么窗口没有立即出现?

问题描述 投票:0回答:1

必须使窗口与声音信号开始同时出现。但在我的示例中,首先触发声音信号,只有在它之后才会出现窗口。

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

如何让这两个事件同时进行?使窗口与声音信号同时出现?

python tkinter window
1个回答
0
投票

在您的代码中, 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()
© www.soinside.com 2019 - 2024. All rights reserved.