为了账号安全,请及时绑定邮箱和手机立即绑定

Winsound 导致我的 tkinter GUI 打开缓慢

Winsound 导致我的 tkinter GUI 打开缓慢

杨魅力 2023-10-18 20:56:53
我正在使用 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")


查看完整回答
反对 回复 2023-10-18
  • 1 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信