Also erstelle ich eine Python Tkinter-Anwendung, die einen gemessenen Wert hat, den ich jede Sekunde auf dem Bildschirm anzeigen muss. Wenn das Programm läuft, wird der Wert angezeigt, aber es wird nicht aktualisiert (ich manipuliere den Wert extern, daher weiß ich, dass sich die Anzeige ändern sollte). Wie kann ich die Anzeige dynamisch jede Sekunde aktualisieren? Ich wurde gemacht zu verstehen, dass ich keine Update()
Methode oder irgendetwas für Tkinter Anwendungen erstellen musste, weil mainloop()
dafür sorgt. Hier ist mein Code:Python Tkinter, Update jede Sekunde
Main.py:
from SimpleInterface import SimpleInterface
from ADC import Converter, Differential
adc = Converter(channelNums = [2])
root = SimpleInterface(adc)
root.title = ("Test Interface")
root.mainloop()
SimpleInterface.py:
import tkinter as tk
from tkinter import ttk
class SimpleInterface(tk.Tk):
def __init__(self, ADC, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
container = tk.Frame(self, *args, **kwargs)
container.grid(column = 0, row = 0, sticky = "nwes")
container.grid_rowconfigure(0, weight = 1)
container.grid_columnconfigure(0, weight = 1)
frame = Screen(ADC, container, self)
frame.grid(row = 0, column = 0, sticky = "nsew")
frame.tkraise()
class Screen(tk.Frame):
def __init__(self, ADC, parent, controller):
tk.Frame.__init__(self, parent)
displayText = ADC.ReadValues() #this method returns a list of values
for i in range(len(displayText)):
displayText[i] = round(displayText[i], 2)
ttk.Label(self, text = "Test Display", background = "grey").grid(column = 7, row = 8)
lblTestDisplay = ttk.Label(self, text = displayText, foreground = "lime", background = "black").grid(column = 7, row = 9, sticky = "ew")
So das Display richtig zeigt die displayText
, wenn der Code zunächst ausgeführt wird, aber auch hier ändert sich nichts als Ich manipuliere manuell den eingegebenen Wert. Muss ich eine Update()
Methode erstellen? Wenn ja, wo würde ich diese Methode nennen?
Vielen Dank. Und mir war nicht bewusst, dass die Art und Weise, wie ich das Initialisieren und Layout hatte, eine Keine-Variable verursachte. Daran muss ich mich für die Zukunft erinnern. Prost! – Skitzafreak