0

I want to bind specific entry and create more entry under the specific entry which I clicked enter. However, It only binds the last one even I want to bind the first. How can I change this code? I guess I can't use getattr in tkinter

from tkinter import *

class Main(Frame):
    def __init__(self, master=None):
        super().__init__()

        self.window = master

        "schedule list"
        self.sche_list = [[""],[""],[""],[""],]
        self.sche_len = []
        self.sche_nm = []

        self.__setwindow__()

    def __setwindow__(self):
        pack_list = self.window.winfo_children()
        for item in pack_list:
            item.pack_forget()

        self.window.geometry("300x500")

        self.title = Label(text="오늘 할일을 작성하시오.")
        self.title.pack()

        self.sche_len = [len(self.sche_list[0]),len(self.sche_list[1]),
                         len(self.sche_list[2]),len(self.sche_list[3])]
        self.sche_nm = ['0~6시', '6~12시', '12~18시', '18~24']
        for sc, nm in zip(self.sche_len, self.sche_nm):
            print(sc)
            self.sub_title = Label(text=nm)
            self.sub_title.pack()

            for i in range(sc):
                self.sche_entry = Entry()
                self.sche_entry.pack()

                self.sche_entry.bind('<Return>',lambda x: self.__update__(nm))

        self.submit = Button(text='완료')
        self.submit.pack()

    def __update__(self, nm):
        pos = self.sche_nm.index(nm)
        self.sche_list[pos].append('""')

        self.__setwindow__()

ob = Tk()
Main(master = ob)
ob.mainloop()
famas kim
  • 23
  • 4

0 Answers0