Я создаю программу для построения графиков значений объемов продаж разных продуктов. Но когда я запускаю программу, она автоматически печатает значение по умолчанию в меню параметров, а когда я изменяю значение и нажимаю показать график, она не получает новое значение и, следовательно, не обновляет график.
global aggregateMonthly
aggregateSalesMonthly = cur.execute("""select SUM(HotDrink), SUM (ColdDrink),
SUM(Cake), SUM(Smoothie), SUM(DecafDrink),
strftime("%m-%Y", Date) as 'month-year'
from TotalDaySales group by strftime("%m-%Y", Date);""").fetchall()
root = tkinter.Tk()
root.wm_title("Analytics")
def plotter(title, index1):
valueArray = []
valueArray2 = []
for values in aggregateSalesMonthly:
valueArray2.append(values[-1])
valueArray.append(values[index1])
print(values[index1])
#print(valueArray)
plt.title(title)
plt.xlabel('Months')
plt.ylabel('Sales Volume')
plt.xticks(rotation=30)
f = Figure()
f.add_subplot().plot(valueArray2, valueArray)
canvas = FigureCanvasTkAgg(f, master=root) # A tk.DrawingArea.
canvas.draw()
canvas.get_tk_widget().pack(side=tkinter.TOP, fill=tkinter.BOTH, expand=1)
d = {
'Hot Drinks': (plotter, ('Hot Drinks', 0)),
'Cold Drinks': (plotter, ('Cold Drinks', 1)),
'Cake': (plotter, ('Cake', 2)),
'Smoothie': (plotter, ('Smoothie', 3)),
'DecafDrink': (plotter, ('DecafDrink', 4)),
}
def showGraph(value):
foo, args = d[(value)]
foo(*args)
cats1 = StringVar(root)
cats1.set("Hot Drinks") # default value
catgeory = OptionMenu(root, cats1, "Total", "Hot Drinks", "Cold Drinks", "Food",
"None")
catgeory.pack(side=LEFT)
variableGetter = cats1.get()
button = tkinter.Button(root, text="Show Graph")
button.bind("<Button-1>", print(cats1.get()))
button.pack(side=LEFT)
root.mainloop()