Tkinter는 파이썬 설치시 기본적으로 내장된 표준 라이브러리로 별도의 설치 없이 바로 GUI 개발을 시작할 수 있다는 장점이 있다.
Tkinter의 주요 구성 요소
- Tk 객체 : GUI 애플리케이션의 메인 윈도우를 생성하는 핵심 객체이다. Tk()를 통해 생성된다.
- 위젯(Widgets) : 사용자 인터페이스를 통해 상호작용할 수 있도록 도와주는 각종 UI 요소이다.
- Label : 텍스트나 이미지를 표시한다.
- Button : 사용자가 누를 수 있는 버튼을 제공한다.
- Entry : 한 줄의 텍스트를 입력받는 입력 필드이다.
- Text : 여러 줄의 텍스트를 입력받는 필드이다.
- Frame : 다른 위젯들을 그룹핑하고 레이아웃을 관리하는 컨테이너이다.
- 배치 관리자(Layout Managers) : 위젝을 윈도우 또는 프레임에 배치하는 방식으로 대표적인 레이아웃 매니저는 다음과 같다.
- pack() : 위젯을 상하좌우로 순서에 따라 side, anchor, fill 등의 옵션과 함께 배치한다.
- grid() : 위젯을 grid 형태로 배치하며 rowspan, columnspan 등의 옵션과 함께 사용된다.
- place() : 절대좌표 또는 상대좌표를 기반으로 위젯을 배치한다.
- 이벤트 및 콜백 : 사용자 입력과 같은 이벤트를 처리하기 위해 콜백 방식을 사용한다.
- 옵션 설정 : 각 위젯은 색상, 텍스트, 크기 등 다양한 속성을 가지고 있으며, 이를 통해 위젯의 모양과 동작을 제어할 수 있다.
4번, 버튼 클릭 이벤트가 발생했을 때 특정 함수가 호출되도록 하는 예시
from tkinter import *
def on_button_click():
print("Button clicked!")
win = Tk()
button = Button(win, text="Click me", command=on_button_click)
button.pack(pady=20)
win.mainloop()
5번, 위젯을 생성할 때 생성자에 원하는 속성들을 전달하여 옵션을 설정하는 예시
from tkinter import *
win = Tk()
label = Label(win, text="Hello, Tkinter!", fg="blue", bg="white", font=("Arial", 16))
label.pack()
win.mainloop()
5번, 위젯이 생성된 후 config 메서드를 사용하여 속성을 변경하는 예시
from tkinter import *
win = Tk()
label = Label(win)
label.pack()
label.config(text="Hello, Tkinter!", fg="blue", bg="white", font=("Arial", 16))
win.mainloop()
간단한 앱을 작성해봤다.
설명은 주석으로 달아놨다.
# tkinter에서 제공하는 모듈을 전부 import
from tkinter import *
# 창 생성
win = Tk()
# 창 크기 조절
win.geometry("360x360")
# 창 제목 설정
win.title("First tkinter app")
# 전체 폰트 설정
win.option_add("*Font", "Consolas 20")
# 창 배경색 설정
win.config(bg='white')
# 엔트리 설정
entry = Entry(win) # 부모 컨테이너 win 안에 Entry 위젯 생성
entry.pack(pady=(10,10)) # pack으로 위젯을 배치하고 위쪽/아래쪽 패딩 10 추가
# 엔트리 인풋을 라벨에 업데이트하는 함수
def update_label():
input_text = entry.get()
label.config(text=input_text)
entry.delete(0, END) # 엔트리 비우기
# 버튼 설정
button = Button(win, text="Update Label", command=update_label)
button.pack(pady=10) # 아래쪽 패딩 10 추가
# 라벨 설정
label = Label(win, bg='white', fg='red')
label.pack()
# 창 실행
win.mainloop()
'프로그래밍 > Python' 카테고리의 다른 글
Python ] os.path 모듈 (0) | 2024.08.30 |
---|---|
PyInstaller ] 파이썬 스크립트(.py)를 실행파일(.exe)로 만들기 (0) | 2024.08.12 |
Pyside6 ] 개발 환경 설정 with VSCode (0) | 2024.06.08 |
Python ] 코드 실행 시간 ms 단위로 측정하기 + datetime 모듈 사용법 (0) | 2024.06.03 |
Python 기본 문법 (0) | 2024.06.01 |