파이썬 tkinter를 이용한 gui코딩관련해서 질문있습니다.

안녕하세요 코딩을 얼마전에 시작해서 꾸준히 해보려고 하고있는 코린이입니다. Python 모듈 tkinter를 이용해서 가계부 코딩을 하려고 하는 중인데요... 아래 스크립트의 okclick이라는 함수를 button1에 묶어서 entry1에 입력된 값을 변수로 빼내려는 작업을 하고 싶은데, 실행을 하면 계속 okclick함수가 정의되지 않았다고 오류가 나네요ㅜ 혹시 가르쳐줄 선배님 계신가요?? 답변 미리 감사드립니다!!

아래는 코드입니다.

from tkinter import *
from tkinter import ttk
import colors as c
from tkcalendar import DateEntry

b=Tk()



class memo(Frame):
    def okClick():
        name = entry1.get()
        messagebox.showinfo("이름", name)

    def __init__(self,master):
        Frame.__init__(self,master)
        self.master=master
        self.master.title('Memo')
        self.pack(fill=BOTH, expand=True)

        frame1=Frame(self,width=500,height=50)
        frame1.pack(expand=False)
        label1=Label(frame1,text='Amount',width=10)
        label1.pack(side=LEFT, padx=10,pady=10)
        entry1=Entry(frame1,width=20)
        entry1.pack(padx=10,fill=X,expand=True)

        frame2=Frame(self,width=500,height=50)
        frame2.pack(expand=False)
        label2=Label(frame2,text='Cartegory',width=10)
        label2.pack(side=LEFT, padx=10,pady=10)
        listbox1=Listbox(frame2,width=20)
        listbox1.insert(END,"식료품비","잡화비","건강관리비","외식비")
        listbox1.pack(side=LEFT, padx=10,pady=10)

        frame3=Frame(self,width=500,height=50)
        frame3.pack(expand=False)
        label3=Label(frame3,text='Date',width=10)
        label3.pack(side=LEFT, padx=10,pady=10)
        dateentry = DateEntry(frame3)
        dateentry.pack(padx=10,pady=10)

        frame4=Frame(self,width=500,height=500)
        frame4.pack(expand=False)
        button1=Button(frame4,text='csv Export',command=okClick)
        button1.pack(side=LEFT,padx=10,pady=10)



a=memo(b)
a.mainloop()

dsimon22.kim 1019

M 2020년 8월 23일 10:52 오전

목록으로
1개의 답변이 있습니다. 1 / 1 Page

코드를 보니 함수로 구현된 것을 클래스 형태로 바꾸신것 같습니다.

클래스로 구현하면 entry등을 self.entry, command=okclick도 command=self.okclick 으로 변경해야 할 것 같네요.

박응용

2020년 8월 23일 10:55 오전

앗 책 저자님께서 직접 댓글을 달아주시다니 영광입니다!!ㅎㅎ 언제 클래스나 함수 앞에 self.를 써야할지 아직 명확한 느낌이 안오네요 ;) - dsimon22.kim님, 2020년 8월 24일 8:40 오후 추천 , 대댓글