我有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'打电话让面板更新?
答案 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()
合并到您自己的代码中。