Python tkinter optionMenu не меняет значение - PullRequest
0 голосов
/ 17 октября 2019

Я создаю программу для построения графиков значений объемов продаж разных продуктов. Но когда я запускаю программу, она автоматически печатает значение по умолчанию в меню параметров, а когда я изменяю значение и нажимаю показать график, она не получает новое значение и, следовательно, не обновляет график.

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...