# tkinter_gpiozero_template
import tkinter as tk
from tkinter import Label, ttk
from gpiozero import LED
from gpiozero import Button
root = tk.Tk()
root.geometry("600x400")
root.title('Tkinter gpiozero Template')
root['background']='#000040'

# gpio output controlled by gui button
Led=LED(21)

# gui controlled output
def turnLedOn():
    Led.on()
    
def turnLedOff():
    Led.off()

# gpio output controlled by hardware pushbutton
statusLed=LED(17)
statusState = False
#guiDisp="OK"

# hardware pushbutton
button = Button(16)

# hardware controlled output
def turnstatusLedOn():
    statusState = True
    #guiDisp="FAULT"
    statusLed.on()
    
def turnstatusLedOff():
    statusState = False
    #guiDisp="OK"
    statusLed.off()
    
# not working -->
# def guistatusLabel():
#     if statusState:
#         # green
#         guiDisp="OK"
#     else:
#         # red
#         guiDisp="FAULT"
#     
# gui statusState display
statusStateDisplay = tk.Label(root, text=guiDisp, font=("None", 20))
statusStateDisplay.grid(column=0, row=1, padx=5, pady=5)
# <-- not working 

# gui On and Off buttons
buttonOn = tk.Button(root, text="TURN ON", command=turnLedOn, fg="black", bg="red", font=("None", 20))
buttonOn.grid(column=0, row=0, padx=5, pady=5)

buttonOff = tk.Button(root, text="TURN OFF", command=turnLedOff, fg="black", bg="green", font=("None", 20))
buttonOff.grid(column=1, row=0, padx=5, pady=5)

# hardware pushbutton switch between 16 and GND
button.when_pressed = turnstatusLedOn
# button.when_pressed = guistatusLabel
button.when_released = turnstatusLedOff
# button.when_released = guistatusLabel

root.mainloop()