2017-08-25 13 views
0

Ich habe Tkinter Panels, die ich im Laufe der Zeit aktualisieren möchte. Die Hauptdatei führt eine Methode für eine importierte Klasse aus, um das Tkinter-Panel zu zeichnen, und ich möchte, dass es 5 Mal pro Sekunde ausgeführt wird.Update Tkinter Panel im Laufe der Zeit

Hier ist das Hauptskript, das die Methode aufruft, um das Panel zu erstellen:

# 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() 

Hier ist die Methode, die die Tkinter Platten erstellt:

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) 

Wo kann ich tun, um die ‚Wurzel. nach 'call um die Panels updaten zu lassen?

Antwort

0

Sie nicht genug Code für ein individuelles Beispiel zur Verfügung gestellt haben, also hier ein minimalistisches Beispiel root.after() der Verwendung:

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() 

Hoffentlich Ihnen eine Vorstellung davon geben, wie root.after() in Ihren eigenen Code zu integrieren.

Verwandte Themen