파이썬 (pythoon)

Tkinter button 세팅 및 이벤트

working for you 2023. 5. 15. 08:48
반응형

Python Tkinter GUI 사용에 있어서 많은 위젯이 있지만, 그 중에 이벤트 발생을 위해 많이 사용하는 것이 바로 Button 입니다. 모든 위젯 중 가장 중요하다고 생각이 드는데요, 이번 글에서는 간단하게 파이썬 Tkinter button 세팅 및 이벤트 까지 자세한 설명과 예시를 통해서 알아보도록 하겠습니다.

 

 

[목차]
1. Tkinter button 세팅
2. Tkinter button 이벤트
3. Tkinter button 예시1
4. Tkinter button 예시2
5. 결론 및 의견

 

1. Tkinter button 세팅

단계 1: Tkinter 모듈 가져오기

Tkinter 모듈을 가져와서 프로그램에서 사용할 수 있도록 해야 합니다. Tkinter 모듈을 가져오려면 다음과 같은 코드를 사용하면 됩니다. 이 코드는 tkinter 모듈에서 모든 클래스와 함수를 가져옵니다.

from tkinter import *

 

단계 2: 윈도우 생성하기

Tkinter를 사용하여 GUI를 만드려면 먼저 윈도우를 생성해야 합니다. 윈도우를 생성하려면 Tk() 메소드를 사용해야 합니다. 다음 코드를 사용하여 윈도우를 생성합니다. 이 객체는 Tkinter의 모든 기능을 가진 루트 윈도우입니다.

window = Tk()

 

 

단계 3: 버튼 만들기

Tkinter에서 버튼을 만들려면 Button() 메소드를 사용해야 합니다. 다음 코드를 사용하여 버튼을 만듭니다.

button = Button(window, text="Click Me")

"Click Me"는 버튼에 표시되는 텍스트입니다. 이제 버튼을 윈도우에 표시하려면 pack() 메소드를 사용하면 됩니다. pack() 메소드는 위젯을 윈도우에 배치하는 데 사용됩니다.

button.pack()

 

 

2. Tkinter button 이벤트

버튼을 클릭했을 때 실행되는 이벤트를 처리할 수 있습니다. 아래 코드에서는 버튼을 클릭했을 때 "Hello World!" 메시지를 출력하는 함수를 정의하고, 이 함수를 버튼 클릭 이벤트에 연결합니다.

def say_hello():
    print("Hello World!")
button = Button(window, text="Click Me", command=say_hello)
button.pack()

 

 

전체 코드 확인

1
2
3
4
5
6
7
8
9
10
from tkinter import *
window = Tk()
 
def say_hello():
print("Hello World!")
button = Button(window, text="Click Me", command=say_hello)
button.pack()
 
window.mainloop()
 
cs

 

tkinter hello world

 

3. Tkinter button 예시1

Tkinter를 사용하여 버튼, 라벨, 텍스트박스가 포함된 파이썬 예시입니다.

Tkinter label button

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from tkinter import *
 
# Tk 객체 생성
window = Tk()
 
# 버튼 생성
button = Button(window, text="Click Me")
button.pack()
 
# 라벨 생성
label = Label(window, text="Hello World!")
label.pack()
 
# 텍스트박스 생성
textbox = Entry(window)
textbox.pack()
 
# 윈도우 실행
window.mainloop()
 
cs

- Tk() 메소드를 사용하여 Tk 객체를 생성하고, 버튼, 라벨, 텍스트박스 위젯을 생성하였습니다.
- Button() 메소드를 사용하여 버튼 위젯을 생성하였으며, text 인자를 사용하여 버튼에 표시될 텍스트를 지정하였습니다.
- Label() 메소드를 사용하여 라벨 위젯을 생성하였으며, text 인자를 사용하여 라벨에 표시될 텍스트를 지정하였습니다.
- Entry() 메소드를 사용하여 텍스트박스 위젯을 생성하였습니다.
- 윈도우 실행을 위해 window.mainloop() 메소드를 사용하였습니다.


이 예시 코드를 실행하면, 윈도우 창에 "Click Me" 버튼, "Hello World!" 라벨, 빈 텍스트박스가 생성되며, 버튼 클릭 시 아무 동작도 일어나지 않습니다.

 

4. Tkinter button 예시2

Tkinter를 사용하여 버튼, 프레임, 프로그레스바가 포함된 예제입니다. 버튼을 클릭하면 프로그레스바가 20씩 증가합니다.

tkinter button progressbar

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from tkinter import *
from tkinter.ttk import Progressbar
 
# Tk 객체 생성
window = Tk()
 
# 버튼 생성
button = Button(window, text="Click Me")
button.pack()
 
# 프레임 생성
frame = Frame(window)
frame.pack()
 
# 프로그레스바 생성
progressbar = Progressbar(frame, orient=HORIZONTAL, length=200, mode='determinate')
progressbar.pack()
 
# 이벤트 처리 함수
def update_progressbar():
progressbar['value'] += 20
 
# 버튼 이벤트 처리 함수 등록
button.config(command=update_progressbar)
 
# 윈도우 실행
window.mainloop()
 
cs

- Button() 메소드를 사용하여 버튼 위젯을 생성하였으며, text 인자를 사용하여 버튼에 표시될 텍스트를 지정하였습니다.
- Frame() 메소드를 사용하여 프레임 위젯을 생성하였습니다.
- Progressbar() 메소드를 사용하여 프로그레스바 위젯을 생성하였습니다. orient 인자로 수평 방향으로 설정하였으며, length 인자로 200을 지정하여 프로그레스바의 길이를 설정하였습니다. mode 인자는 determinate로 지정하여 값을 설정할 수 있도록 설정하였습니다.
- update_progressbar() 함수는 프로그레스바 값을 20씩 증가시키는 함수입니다.
- button.config() 메소드를 사용하여 버튼 이벤트 처리 함수를 등록하였습니다.
- 윈도우 실행을 위해 window.mainloop() 메소드를 사용하였습니다.

이 코드는 Tkinter를 사용하여 버튼, 프레임, 프로그레스바가 포함된 예제를 보여주고 있습니다.

 

5. 결론 및 의견

Python Tkinter에서 버튼을 만드는 방법을 배웠습니다. 이것은 단순한 예제이지만 Tkinter를 사용하여 더 복잡한 GUI를 만들 수 있습니다. Tkinter에는 더 많은 위젯이 있으며, Tkinter를 사용하여 창, 라벨, 메뉴 등을 만들 수 있습니다. 프로그램 개발시 어렵지 않게 적용 할 수 있으니 좋습니다.

 

 

[관련글]

 

Python Tkinter 란?

Tkinter를 사용하면 Python 언어로 간단하고 효과적인 GUI 애플리케이션을 만들 수 있습니다. Python Tkinter 사용으로 기본적인 GUI 애플리케이션을 만드는 방법을 소개합니다. 맛보기 정도로 생각하시

2toy.net

 

 

Python Tkinter GUI 창 만드는 방법

Tkinter는 파이썬에서 기본적으로 제공하는 GUI 패키지입니다. Tkinter는 파이썬으로 GUI 프로그래밍을 할 때 가장 많이 사용되는 패키지 중 하나입니다.Tkinter를 사용하면 Python에서 간단한 GUI 창을 만

2toy.net

 

 

파이썬 exe 변환 기본편 - Python Pyinstaller Converter

기존 간단히 개발한 유투브 다운로드 프로그램을 파이썬 exe 변환 및 실행을 위해 Python Pyinstaller Converter 팩키지를 사용하여 만들어 보려 합니다. 별도의 파이썬 인터프린터나 모듈 설치 없이, 윈

2toy.net

 

반응형