I am trying to get a Tkinter window to change a label based on temperature probe readings. I have found some people who have done similar but my code doesn't seem to work. Instead the Tkinter window hangs. The code seems to continue looping and printing output to terminal, just Tkinter doesn't work.
Any ideas? I apologise for my poor code layout. I've only been learning python/coding for a few weeks.
from random import randint
import time
import tkinter as tk
import tkinter.font as tkfont
def tempprobe():
while True:
tempsimsum = 0
for count in range(4):
# This is to simulate temperature probe readings. 4 per second. Takes 4 readings then finishes loop
tempsimraw = randint(14, 30)
time.sleep(0.25)
tempsimsum = tempsimsum + tempsimraw
global temperature
global temperatureWindow
temperature.set(value=tempsimsum / 4) # Averaging so lessen noise and spikes
print(temperature.get())
# This should 'refresh' labeltemperature in the tk window and restart this function but it just hangs the window
temperatureWindow.after(500, tempprobe())
temperatureWindow = tk.Tk()
dfont = tkfont.Font(size=-24)
temperature = tk.DoubleVar()
labeltemperature = tk.Label(textvariable=temperature, font=dfont)
labeltemperature.pack()
buttonstart = tk.Button(text='Start',
font=dfont,
command=tempprobe)
buttonstart.pack()
temperatureWindow.mainloop()