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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度