Tkinter 튜토리얼-버튼

Jinku Hu 2023년1월30일
  1. Tkinter 버튼 default 옵션
  2. Tkinter 버튼 명령 콜백
Tkinter 튜토리얼-버튼

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

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

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 옵션은 버튼을 누를 때 콜백 기능을 호출합니다.

role=“alert”>명령 옵션이 활성화되면 버튼 상태가 활성화되어야하며, 그렇지 않으면 호출 된 콜백이 없습니다.

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)
)
작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook