Несколько опций меню, как сохранить изменения значений и добавить список? - PullRequest
0 голосов
/ 31 января 2019

У меня проблема со значениями параметров трассировки, в начале я хочу добавить, что я новичок в python.Как обновить список, основываясь на текущем выборе опции меню tkinter?У меня есть несколько IP-адресов на основе их количества (в коде validIPs), я копирую несколько раз optionmenu с опцией Add / Delete на основе этих выборов, у меня есть список add_delete_list, но в ситуации, когда мне нужно изменить мои выборы, это добавляет меня следующим элементом в списке, но я хочу изменить правильный, несмотря на добавление нового.Например, у меня есть 2 IP-адреса (validIPs = 2), поэтому у меня есть 2 OptionMenu, нажмите сначала выберите, например, «Удалить», а затем «Удалить», я получил список ['Удалить', '' Удалить '] и, когда я хочу изменить, 1 Удалить, чтобы добавитья получил ['Удалить', '' Удалить ',' Добавить '], как изменить его на [' Добавить ',' 'Удалить']?Заранее спасибо!

def add_delete_window():
global worksheet
global validIPs
global Label1
global Label2
global Label3
global add_delete_list
global value_to_add
app2 = Toplevel(app)
var2 = StringVar(app2)
app2.title('ADD or DELETE')
app2.geometry("300x200+30+30")
if validIPs == 0:
    if 'Label1' in globals():
        Label1.destroy()
    app2.destroy()
    # print "No IP entered!. Please provide IP address."
    Label3 = Label(app, text="No IP entered!Please provide IP address.")
    Label3.pack()
    return
def save_submit():

    wb = load_workbook('demo.xlsx')
    ws = wb.active
    wb.save('demo.xlsx')
    print add_delete_list

    for x in range(validIPs):
        value_to_add = add_delete_list[x]
        print x
        wb = load_workbook('demo.xlsx')
        ws = wb.active
        adding_rows = ws.cell(x+1, 4)
        adding_rows.value = value_to_add
        wb.save('demo.xlsx')
        app2.destroy()
    return

for x in range(validIPs):
    variable = StringVar()
    IP_new = IP_list[x]
    prefix_len = len(str(int(netaddr.IPAddress(IP_new))))
    label4 = Label(app2, text=IP_new)
    label4.config(width=prefix_len)
    label4.grid(row=x, column=2, sticky="W")

    OptionList = ['Add', 'Delete']
    #variable.set(OptionList[0])

    def option_changed(value):
        add_delete_list.append(value)

        return

    oMenuWidth = len(max(OptionList, key=len))
       Option1=OptionMenu(app2,variable,*OptionList,command=option_changed)
    Option1.grid(row=x, column=1, sticky="W")
    Option1.config(width=oMenuWidth)

wb = load_workbook('demo.xlsx')
wb.save('demo.xlsx')

Submit = Button(app2, text="Save and Submit", command=save_submit)
Submit.grid(row=x+5, column=3)

button8 = Button(app, text="Add or Delete", width=20,command=add_delete_window)
button8.pack(side='bottom',padx=15,pady=15)
button8.pack(fill=X, anchor = 'w')
...