I believe this code is close - I have three buttons defined with a callback to store a IntVar() variable associated with the button selected. I have created a temp variable (cntr) that stores the appropriate Intvar. that seems to be working based on the print statements I have in the callbacks. but when I select one of those buttons then hit the inc or dec button configured at the end of the code, the only "entry" button that changes is the one that setup in the main section of the code. Can anyone show me what I am missing
#!/usr/bin/python3
from tkinter import *
from tkinter import PhotoImage
def increment (cntr):
print('in inc', cntr)
cntr.set("{0:0>4}".format(cntr.get() + 1))
def decrement (cntr):
print('in dec', cntr)
cntr.set("{0:0>4}".format(cntr.get() - 1))
def EntryCB(arg):
global cntr
cntr = arg
print('in EntryCB', cntr, arg)
root = Tk()
root.configure(bg='white')
frame1 = LabelFrame(root, text="Component 1",)
frame1.grid()
#UpArrow = PhotoImage(file="images//UpArrow.png")
#DownArrow = PhotoImage(file="images/DownArrow.png")
counter1 = IntVar()
counter1.set("{0:0>4}".format(0))
counter2 = IntVar()
counter2.set("{0:0>4}".format(0))
counter3 = IntVar()
counter3.set("{0:0>4}".format(0))
cntr=counter1
print('in main', cntr)
#setup entry buttons tied to IntVar variables
Entry1 = Button(frame1, textvariable=counter1)
Entry1.grid(row=0, column=0)
Entry1.config(command= lambda arg=counter1:EntryCB(arg))
Entry1.configure(borderwidth=3, relief='sunken', bg='green')
Entry2 = Button(frame1, textvariable=counter2)
Entry2.grid(row=0, column=1)
Entry2.config(command= lambda arg=counter2:EntryCB(arg))
Entry2.configure(borderwidth=3, relief='sunken', bg='pink')
Entry3 = Button(frame1, textvariable=counter3)
Entry3.grid(row=0, column=2)
Entry3.config(command= lambda arg=counter3:EntryCB(arg))
Entry3.configure(borderwidth=3, relief='sunken', bg='orange')
#setup callback and display control buttons to increment or decrement the IntVar
Inc = Button(frame1,text='Inc')
Inc.grid(row=1, column=0)
Inc.configure(command= lambda arg=cntr:increment(arg))
Dec = Button(frame1,text='Dec')
Dec.grid(row=1, column=1)
Dec.configure(command= lambda arg=cntr:decrement(arg))
root.mainloop()