편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2022.05.25

    파이썬 tkinter 계산기 관련해서 질문을 드립니다


    저는 파이썬 계산기를 만들려고 하는데요 먼저 코드 내용을 적어드리면

    from tkinter import*
    from functools import partial
    
    try:
        import Tkinter as tk
    except:
        import tkinter as tk
    
    
    
    def show_result(lb_r, n1, n2):
        num1 = (n1.get())
        num2 = (n2.get())
        result = int(num1)+int(num2)
        lb_r.config(text="결과 = %d"% result)
        return
    
    def switchButtonState():
        if (btn['state'] == tk.NORMAL):
            btn['state'] = tk.DISABLED
        else:
            btn['state'] = tk.NORMAL
    
    
    window = tk.Tk()
    window.geometry('400x200+100+200')
    
    window.title("계산기")
    btn = tk.Button(window, text="계산",
                        command=show_result)
    btn1 = tk.Button(window, text="테스트",
                        command=switchButtonState)
    
    num1 = StringVar()
    num2 = StringVar()
    
    lbl1 = Label(text="Mbps : ", bg="white", fg="black")
    lbl2 = Label(text="second : ", bg="white", fg="black")
    lb_r = Label(window)
    lb_r.grid(row=7, column=2)
    
    lbl1.grid(row=1, column=1)
    lbl2.grid(row=2, column=1)
    btn1.grid(row=0, column=0)
    entry_num1 = Entry(window, textvariable=num1).grid(row=1, column=2)
    entry_num2 = Entry(window, textvariable=num2).grid(row=2, column=2)
    
    show_result = partial(show_result, lb_r, num1,num2)
    
    btn.grid(row=3, column=0)
    
    window.mainloop()
    

    인데 이 계산하기를 평소에는 비활성화를 한 상태로 테스트를 눌렀을때 활성화를 시키고 활성화되면 계산하는 그런식으로 작성하고 싶은데 비활성화/활성화는 잘 되지만 계산을 누르면

    in __call__
        return self.func(*args)
    TypeError: show_result() missing 3 required positional arguments: 'lb_r', 'n1', and 'n2'
    

    라는 에러가 납니다 어떻게 해결해야 할까요

  • 프로필 kunhe2000님의 편집
    날짜2022.05.25

    파이썬 tkinter 계산기 관련해서 질문을 드립니다


    저는 파이썬 계산기를 만들려고 하는데요 먼저 코드 내용을 적어드리면

    from tkinter import* from functools import partial

    try: import Tkinter as tk except: import tkinter as tk

    def show_result(lb_r, n1, n2): num1 = (n1.get()) num2 = (n2.get()) result = int(num1)+int(num2) lb_r.config(text="결과 = %d"% result) return

    def switchButtonState(): if (btn['state'] == tk.NORMAL): btn['state'] = tk.DISABLED else: btn['state'] = tk.NORMAL

    window = tk.Tk() window.geometry('400x200+100+200')

    window.title("계산기") btn = tk.Button(window, text="계산", command=show_result) btn1 = tk.Button(window, text="테스트", command=switchButtonState)

    num1 = StringVar() num2 = StringVar()

    lbl1 = Label(text="Mbps : ", bg="white", fg="black") lbl2 = Label(text="second : ", bg="white", fg="black") lb_r = Label(window) lb_r.grid(row=7, column=2)

    lbl1.grid(row=1, column=1) lbl2.grid(row=2, column=1) btn1.grid(row=0, column=0) entry_num1 = Entry(window, textvariable=num1).grid(row=1, column=2) entry_num2 = Entry(window, textvariable=num2).grid(row=2, column=2)

    show_result = partial(show_result, lb_r, num1,num2)

    btn.grid(row=3, column=0)

    window.mainloop()

    인데 이 계산하기를 평소에는 비활성화를 한 상태로 테스트를 눌렀을때 활성화를 시키고 활성화되면 계산하는 그런식으로 작성하고 싶은데 비활성화/활성화는 잘 되지만 계산을 누르면

    in call return self.func(*args) TypeError: show_result() missing 3 required positional arguments: 'lb_r', 'n1', and 'n2'

    라는 에러가 납니다 어떻게 해결해야 할까요