def update_region(optionMenu, logpath, var): regions = EVEscan.getRegions(logpath.get()) # var.set(regions[0]) temp = var.get() m = optionMenu.children["menu"] m.delete(0, END) for region in regions: m.add_command(label=region, command=lambda v=var, l=region: v.set(l)) # var.set(regions[0]) var.set(temp)
EVE_logs = StringVar() logpath = StringVar() EVEscan.setlogs(EVE_logs, logpath) Label(logFrame, text="EVE Market Log Path").grid(row=0, column=0, columnspan=3) Label(logFrame, text="Text Log Path").grid(row=2, column=0, columnspan=3) Entry(logFrame, textvariable=EVE_logs, state="readonly").grid(row=1, column=0, columnspan=2) Entry(logFrame, textvariable=logpath, state="readonly").grid(row=3, column=0, columnspan=2) Button(logFrame, text="Browse", command=lambda: EVEscan.select_path(EVE_logs)).grid(row=1, column=2) Button(logFrame, text="Browse", command=lambda: EVEscan.select_path(logpath)).grid(row=3, column=2) # to/from region selection drop down menus regionFrame = Frame(scanFrame, height=regionp_height, width=regionp_width) regionFrame.pack(pady=5) regions = EVEscan.getRegions(EVE_logs.get()) regions.insert(0, "Any") tovar = StringVar() fromvar = StringVar() tovar.set(regions[0]) fromvar.set(regions[0]) Label(regionFrame, text="From").grid(row=0, column=0) fromRegionMenu = OptionMenu(regionFrame, fromvar, *regions) fromRegionMenu.grid(row=0, column=1) # update_region(fromRegionMenu, EVE_logs, fromvar) Label(regionFrame, text="To").grid(row=1, column=0) toRegionMenu = OptionMenu(regionFrame, tovar, *regions) toRegionMenu.grid(row=1, column=1) # update_region(toRegionMenu, EVE_logs, tovar) # update regions button