0
所以我创建了一个Python Tkinter应用程序,它具有我需要每秒显示到屏幕上的测量值。当程序运行时,值显示,但它不更新(我在外部操纵该值,所以我知道显示器应该改变)。如何让显示屏每秒动态更新?我了解到,我不需要为Tkinter应用程序创建Update()
方法或其他任何方法,因为mainloop()
负责处理此问题。这里是我的代码:Python Tkinter,每秒更新
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")
所以正常显示显示displayText
当代码最初运行,但是,没有什么变化我手动操作正在输入的值。我需要创建Update()
方法吗?如果是的话,我会在哪里调用上述方法?
谢谢。我不知道我的初始化和布局方式导致None变量。我将不得不记住未来。干杯! – Skitzafreak