Tkinter 튜토리얼-버튼

  1. Tkinter 버튼 default 옵션
  2. Tkinter 버튼 명령 콜백

Tkinter 버튼 위젯은 Tkinter Label 위젯과 매우 유사합니다. 추가 ‘default’옵션이 있다는 점을 제외하면 레이블의 옵션과 거의 동일한 옵션이 있습니다. 하나의 기본 버튼 예제 다음에이 ‘default’에 대한 세부 정보를 제공합니다.

아래 데모 코드를 사용하여 가장 간단한 두 개의 버튼을 생성 할 수 있습니다.

Tkinter Button_Basic.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
app = tk.Tk()
button1 = tk.Button(app, text="Python Label 1")
button2 = tk.Button(app, text="Python Label 2")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.LEFT)
app.mainloop()

코드를 실행하면 서로 인접한 두 개의 버튼이있는 창이 표시됩니다.

Tkinter Tutorial_Basic 라벨

Tkinter 버튼 default 옵션

버튼의 default 옵션은 GUI 에서 버튼이 기본 버튼임을 알려줍니다. 예를 들어, 사용자가 Enter 또는 Return 키를 누를 때 자동으로 호출되는 버튼입니다.

Tkinter 버튼 명령 콜백

command 옵션은 버튼을 누를 때 콜백 기능을 호출합니다.

Tkinter Button_command callback.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    

    
app = tk.Tk()
labelExample = tk.Button(app, text="0")

def change_label_number():
    counter = int(str(labelExample['text']))
    counter += 1
    labelExample.config(text=str(counter))
    
buttonExample = tk.Button(app, text="Increase", width=30,
                          command=change_label_number)

buttonExample.pack()
labelExample.pack()
app.mainloop()

기본 창에 버튼과 레이블 위젯을 만듭니다. 버튼을 클릭 할 때마다 레이블 텍스트의 숫자가 1 씩 증가합니다.

Tkinter Tutorial_Button 명령 콜백

def change_label_number():
    counter = int(str(labelExample['text']))
    counter += 1
    labelExample.config(text=str(counter))

change_label_number 는 버튼을 클릭했을 때 호출되는 함수입니다. 레이블 수를 얻은 다음 레이블을 1 씩 증가시킵니다.

buttonExample = tk.Button(app, text="Increase", width=30,
                          command=change_label_number)

버튼과 콜백 함수 사이의 바인딩을 만듭니다.

인수가있는 Tkinter 버튼 명령 콜백 기능

콜백 함수에 인수를 전달해야하는 경우 functoolspartial 객체가 필요합니다. partial 객체는 위치 인자 args 와 키워드 인자 keywords 를 가진 호출 가능한 객체입니다.

아래 코드 스 니펫은 버튼 명령에서이 ‘부분’기능을 사용하는 방법을 보여줍니다.

def change_label_number(num):
    counter = int(str(labelExample['text']))
    counter += num
    labelExample.config(text=str(counter))
    
buttonExample = tk.Button(app, text="Increase", width=30,
                          command=partial(change_label_number, 2))