python tkinter모듈 Label의 textvariable 오류...

조회수 1183회

import tkinter

window=tkinter.Tk() window.title("Composing Program") window.geometry("700x700+0+0") window.resizable(False, False)

o=4 def octaveDown(): global o o-=1 def octaveUp(): global o o+=1

down=tkinter.Button(window, text="<", command=octaveDown) octave=tkinter.Label(window, textvariable=int(o), bg="white") up=tkinter.Button(window, text=">", command=octaveUp)

down.place(x=425, y=30) octave.place(x=450, y=33) up.place(x=469, y=30)

octave Label에 초기값 4를 표시하고, up 버튼을 누르면 1 더해주고, down 버튼을 누르면 1 빼주고 싶습니다. 파이썬 초보라 마구잡이로 넣어봤는데 역시 안되네요... 흰 라벨은 표시되지만 textvariable에 넣어준 변수에 해당하는 값이 나오지 않습니다. 도와주세요...

추가적으로 Label에 표시되는 값에 따라서, 더 추가할 버튼에서 나는 음의 주파수를 다르게 할 계획입니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 안녕하세요 :-)

    어떤 걸 하고 싶으신 건지는 알겠습니다. 근데 저 알아보기 힘든, 포매팅이 하나도 안들어간 코드에 최소한 markdown으로 python 몇자만 넣어주셨다면... 아쉽습니다. T_T

    밑에 처럼 하고 싶으신거죠? (python2.7.x)

    import tkinter
    
    window=tkinter.Tk()
    window.title("Composing Program")
    window.geometry("700x700+0+0")
    window.resizable(False, False)
    
    o=4
    def octaveDown():  
        global o; o-=1
        octave['text'] = o  # 여기가 추가됬습니다.
        octave.place(x=450, y=33)
    def octaveUp():
        global o; o+=1
        octave['text'] = o # 여기가 추가됬습니다.
        octave.place(x=450, y=33)
    
    down=tkinter.Button(window, text="<", command=octaveDown)
    octave=tkinter.Label(window, text=int(o), bg="white")
    up=tkinter.Button(window, text=">", command=octaveUp)
    
    down.place(x=425, y=30)
    octave.place(x=450, y=33)
    up.place(x=469, y=30)
    
    window.mainloop() # 이거 빠뜨리셨구요.
    

    CtrlC+CtrlV 해서 IDLE에 넣고 F5 눌러보시면 확인하실 수 있으실 겁니다.

    이게 물론 원하시는대로 돌아는 가는 코드일지언정... 좋은 모양새는 아닙니다. 나머지는 직접 연구해보시길 바래요...

    감사합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)