[英]Winsound causing my tkinter GUI to open slowly
我正在使用 Python 开发 tkinter GUI,以在新窗口中生成错误消息。 运行如下所示的代码时,会播放错误噪音,然后在打开窗口之前暂停几秒钟。 如果我用 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 进行多线程处理。 在播放噪音的同时让它顺利打开有什么技巧吗?
试试这个,它这样做的原因是整个程序是我们应该在一个线程/主线程中说这样它会先做还是先执行声音然后弹出窗口。 我认为在 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")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.