随着时间的推移更新Tkinter面板

时间:2017-08-25 22:17:24

标签: python tkinter

我有Tkinter面板,我想随着时间的推移更新。主文件在导入的类上执行一个方法来绘制Tkinter面板,我希望它每秒执行5次。

以下是调用方法来创建面板的主要脚本:

# Script to control updating the display
from tkinter import *
from settings import Settings
from main_panel import Main
import time


# Creates window
root = Tk()
root.configure(background = 'black')

# Establish settings variable
settings = Settings()

# Create panel class with settings
Main = Main(settings)

# Call panel function to create itself
Main.create(root)
root.mainloop()

以下是创建Tkinter面板的方法:

def create(self,root):
    current = self.get_current_status()
    self.draw_icons(root,current)
    self.draw_days(root,current)
    self.draw_temps(root,current)
    self.draw_status(root,current)

我在哪里做' root.after'打电话让面板更新?

1 个答案:

答案 0 :(得分:1)

您没有为自定义示例提供足够的代码,因此这是使用root.after()的极简主义示例:

from tkinter import *

def update_counter():
    counter = label_variable.get()

    if counter > 0:
        label_variable.set(counter - 1)
        root.after(1000, update_counter)

root = Tk()

label_variable = IntVar()
label_variable.set(10)
Label(root, textvariable=label_variable, width=10).pack()

root.after(1000, update_counter)

root.mainloop()

希望这能让您了解如何将root.after()合并到您自己的代码中。