I am building a spreadsheet of sorts. One of the columns has an OptionMenu in each cell. Each OptionMenu has its own class member StringVar (in an array) associated with it. All OptionMenus use a single callback. How do I know which OptionMenu (and its associated StringVar) was selected?
self.event_option_string_var = []
.
.
.
for col in range(HeaderCol.MAX_COL):
if col == TransactionsGrid.DATE_COL.col:
widget = DateEntry(self.frame_main, selectmode='day')
widget.grid(row=1, column=1, padx=0)
Entry(widget).configure(highlightthickness=0)
elif col == TransactionsGrid.EVENT_COL.col:
string_var = StringVar(self.root)
string_var.set('Select an Event')
self.event_option_string_var.append(string_var)
widget = OptionMenu(self.frame_main, string_var,
string_var,
*TenantEvent.TENANT_EVENTS,
command=self.option_changed)
else:
widget = Entry(self.frame_main)
widget.configure(highlightthickness=0)
button_row.append(widget)
widget.grid(column=col, row=row + 2, sticky="")
.
.
.
def option_changed(self, *args):
self.event_option_string_var['text'] = f'You selected: {self.event_option_string_var.get()}'