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

조회수 385회

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

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'

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

  • 인수가 3개 필요한데, 그보다 적은 인수를 전달한 것 같은데요. 초보자 2022.5.25 16:28
  • 그냥 혼자막 짜보는거라 어떤걸 어떻게 추가하면 될까요? kunhe2000 2022.5.25 21:26
  • def show_result(lb_r, n1, n2): 함수 실행 실패같은데, btn = tk.Button(window, text="계산", command=show_result)이 부분이 문제 아닐까요? 초보자 2022.5.26 10:11

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)