Jonvin86 2022-07-19 22:44 采纳率: 100%
浏览 120
已结题

python,TK实时更新并发出提示声音

问题遇到的现象和发生背景

运行久了会卡死

问题相关代码,请勿粘贴截图
import tkinter as tk
import tkinter.ttk as ttk
from time import strftime
import time
import winsound

root = tk.Tk()
root.title('电子时钟')
root.resizable(True, True)

def get_time():
     local_time = strftime('%H:%M  %p')
     LB_1.config(text=local_time)
     root.after(1000, get_time)
     

LB_1 = ttk.Label(root, font=('微软雅黑', 20, 'bold'), anchor=tk.CENTER, background='#008CBA', foreground='white')
LB_1.pack(fill=tk.BOTH, expand=True)
get_time() 

ass=LB_1.cget("text")

def sound():
     aa=LB_1.cget("text")
     #print(ass)
     time.sleep(1)
     get_time() 
     bb=LB_1.cget("text")
     #print(as2)
     if aa != bb:
        print("LB_1内容更新!!!")
        winsound.Beep(3000, 3000)
     root.after(1000, sound)

sound()

root.mainloop()


运行结果及报错内容

after又调用after 导致栈一直在堆叠

我的解答思路和尝试过的方法
我想要达到的结果

LB_1(Label)里面的内容每发生变化 系统会发出声音

  • 写回答

6条回答 默认 最新

  • 脚踏南山 2022-07-19 23:12
    关注

    下有代码,可直接复制使用。如有帮助,敬请采纳,你的采纳是我前进的动力,O(∩_∩)O谢谢!!!!!!!!

    img

    import tkinter as tk
    import time
    import winsound
    
    class Clock():
        def __init__(self):
            self.root = tk.Tk()
            self.label = tk.Label(text="", font=('Helvetica', 48), fg='red')
            self.label.pack()
            self.old_time = ''  # 记录旧的时间
            self.update_clock_and_sound_beep()
            self.root.mainloop()
    
        def update_clock_and_sound_beep(self):
            now = time.strftime("%H:%M:%S")
            self.label.configure(text=now)
            if self.old_time != now:
                print("内容更新!!!", now)
                winsound.Beep(3000, 3000)
                self.old_time = now
            self.root.after(1000, self.update_clock_and_sound_beep)
     Clock()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 7月28日
  • 已采纳回答 7月20日
  • 创建了问题 7月19日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题