Winsound 导致我的 tkinter GUI 打开缓慢

Winsound causing my tkinter GUI to open slowly

我正在 Python 中开发 tkinter GUI,以在新的 window 中生成错误消息。当 运行 代码如下所示时,会播放错误噪音,然后在打开 window 之前暂停几秒钟。如果我用 winsound 注释掉该行,它就可以正常打开。

import tkinter as tk
import winsound
class 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()

我怀疑这可能是由于在到达 mainloop 命令之前完全播放了错误噪音。一种解决方案可能是 运行 在单独的线程中播放声音,但我听说应该避免使用 tkinter 进行多线程处理。有什么技巧可以让它在播放噪音的同时顺利打开吗?

试试这个,它这样做的原因是整个程序我们应该在 ONE THREAD/ MAIN THREAD 中说,所以它会先执行或先执行声音然后弹出向上 window。我认为在 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")