python 3.9 tkinter 自动更新

因为tkinter 的mainloop 函数只能运行root的项,而设置textvariable 的参数a 是重新定义的,所以 tkinter mainloop不会自动更新textvariable

如果单纯使用after,比较复杂的函数会假死

解决方法

利用多线程数据更新,并将更新值写入json文件

再利用after打开json读取数据

多线程

    def fun_timer():
        
        gp.gpmain('')
        global timer
        timer = threading.Timer(1, fun_timer)
        timer.start()

    timer = threading.Timer(1, fun_timer)
    timer.start()

after

    def jw():
        with open('data.json','r')as TxtFile:
            a .set( json.load(TxtFile))

        root.after(1000,jw)#重新调用以无限循环
    
    root.after(1000,jw)

你可能感兴趣的:(python,GUI,python)