TKinter에서 만든 입력란에 입력 한 값으로 목록의 값을 업데이트하려고합니다. 예제에서 사용자는 목록에있는 사람들의 실제 이름을 입력합니다. 실제 이름이 example_list의 'x'를 대체합니다.Tkinter 입력 상자에서 목록의 값 업데이트 - Python
변수에 전역 변수를 지정했지만 변경 사항은 목록에서 반복되는 두 번째 값에만 적용됩니다. 첫 번째 값은 아래 코드에서 초기화 된 값인 99입니다.
나는 또한 i [1]을 개별적으로 업데이트하는 람다 함수를 지정하려했으나 잘못된 구문입니다. 게다가 quit() 함수가 반복을 계속하는 유일한 방법 인 것 같습니다.
이 작업을 깨끗하게 처리하고 목록의 첫 번째 항목을 업데이트 한 방법이 있습니까? tksimpledialog을 향해 나를 감독 웨인 베르너에
from Tkinter import *
example_list = [['Jimmy Bob','x','78'],[" Bobby Jim",'x','45'] ,["Sammy Jim Bob",'x','67'] ] #Nickname/Real Name/Age
newValue = 99
def replace():
global newValue
newValue = e1.get()
print("Their real name is %s" %(e1.get()))
#return(newValue)
win.quit()
root = Tk()
for i in example_list:
win = Toplevel(root)
#win.lift()
e1 = Entry(win)
e1.grid(row=1, column=0)
var = StringVar()
var.set(i[0])
Label(win, textvariable = var).grid(row=0, column=0)
Button(win, text='Enter Real Name', command=replace).grid(row=2, column=0, pady=4)
#Button(win, text='Enter Real Name', command=lambda: i[1] =replace()).grid(row=2, column=0, pady=4)
i[1] = newValue
win.mainloop()
root.mainloop()
for i in example_list:
print(i)
여기서 무엇을하려고합니까? 새로운 최상위 창을 만든 다음 종료합니다. 왜? 사용자로부터 의견을 얻으 려한다면 왜 tksimpledialog를 사용하지 않는 것이 좋을까요? –
@WayneWerner 감사합니다. 너무 솔직하게 나는 이것이 선택 이었다는 것을 몰랐다. tkinter와 toplevel을위한 어린이 창구를 찾는 데 소비되는 시간이 전부였습니다. 당신의 솔루션은 제가 가지고 있던 모든 문제를 해결합니다. – alkey