파이썬 tkinter 사용해서 숫자 늘리는 코드 질문

조회수 2009회

+버튼을 누르면 숫자가 증가하고 reset버튼을 누르면 초기화되는 파이썬 gui코드를 쓰는데 버튼 생성까진 했는데 버튼을 눌러도 왜 아무 변화가 없는지 모르겠어요. key에 적용이 안되는걸까요?

아래는 코드전문입니다.

from tkinter import *
from tkinter import ttk

incr=Tk()
incr.title("increasing_numbers")

global m_num
m_num=0
#버튼 명령
def click(key):
    global m_num
    if key=='+':
        m_num+=1
    else:
        m_num=0


#결과창 생성
entry_val=StringVar(incr, value=m_num)
num_entry=ttk.Entry(incr, textvariable=entry_val, width=20)
num_entry.grid(row=0)

#+,리셋 버튼생성

operator_list=['+','reset']

r=1
for btn_text in operator_list:
    def cmd(x=btn_text):
        click(x)
    Button(incr, text=btn_text, command=cmd).grid(row=r)
    r+=1

incr.mainloop()

1 답변

  • 결과창 말고 라벨로 숫자 변경하게 하니까 일단 성공은 했어요! 결과창은 .insert써서 증가는 시켰는데 버튼 누를때마다 숫자끼리 붙어서 출력돼서 일단 포기... 내친김에 -버튼까지 생성해봤습니다!

    from tkinter import *
    from tkinter import ttk
    
    incr=Tk()
    incr.title("increasing_numbers")
    
    global m_num
    m_num=0
    #버튼 명령
    def click(key):
        global m_num
        if key=='+':
            m_num+=1
        elif key=='-':
            m_num-=1
        else:
            m_num=0
        num_var.set(m_num)
    
    #라벨 생성
    num_var=IntVar()
    w=Label(incr, textvariable=num_var)
    w.grid(row=0)
    
    #+,-,리셋 버튼생성
    operator_list=['+','-','reset']
    
    r=1
    for btn_text in operator_list:
        def cmd(x=btn_text):
            click(x)
        ttk.Button(incr,text=btn_text,command=cmd).grid(row=r)
        r+=1
    
    
    incr.mainloop()
    
    
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)