我正在使用 Python 开发 tkinter GUI,以在新窗口中生成错误消息。运行如下所示的代码时,会播放错误噪音,然后暂停几秒钟,然后打开窗口。如果我用winsound注释掉该行,它就可以很好地打开它。import tkinter as tkimport winsoundclass Error_Window: def __init__(self, txt): self.root = tk.Tk() self.root.title("Error") self.lbl = tk.Label(self.root, text=txt) self.lbl.pack() winsound.PlaySound("SystemExit", winsound.SND_ALIAS) self.root.mainloop()我怀疑这可能是由于在到达主循环命令之前完全播放错误噪音所致。解决此问题的一种方法是在单独的线程中运行声音,但我听说应该避免使用 tkinter 进行多线程处理。有什么技巧可以让它在播放噪音的同时顺利打开吗?
1 回答
弑天下
TA贡献1818条经验 获得超8个赞
试试这个,它这样做的原因是整个程序是我们应该说在一个线程/主线程中,这样它会首先执行或先执行声音,然后弹出窗口。我认为在 tkinter 中使用线程没有问题,就像 @jasonharper 所说的那样
import tkinter as tk
import winsound
import threading
class Error_Window:
def __init__(self, txt):
self.root = tk.Tk()
self.root.title("Error")
self.lbl = tk.Label(self.root, text=txt)
th = threading.Thread(target=self.__play_sound,args=[])
th.start()
self.lbl.pack()
self.root.mainloop()
def __play_sound(self):
winsound.PlaySound("SystemExit", winsound.SND_ALIAS)
Error_Window("Hi")
添加回答
举报
0/150
提交
取消