파이썬 Tkinter GUI 개발: 종합 가이드
파이썬은 그래픽 사용자 인터페이스(GUI) 개발을 위한 다양한 옵션을 제공합니다. 가장 중요한 것들은 아래에 나열되어 있습니다.
Tkinter - Tkinter는 파이썬과 함께 제공되는 Tk GUI 툴킷에 대한 파이썬 인터페이스입니다. 이 장에서 이 옵션을 살펴보겠습니다.
wxPython - wxWindows https://wxpython.org에 대한 오픈 소스 파이썬 인터페이스입니다.
JPython - 로컬 머신의 Java 클래스 라이브러리에 파이썬 스크립트가 원활하게 접근할 수 있게 해주는 Java용 파이썬 포트 https://www.jython.org.
넷에서 찾을 수 있는 다른 많은 인터페이스도 있습니다.
Tkinter 프로그래밍
Tkinter는 파이썬의 표준 GUI 라이브러리입니다. 파이썬과 Tkinter를 결합하면 GUI 애플리케이션을 빠르고 쉽게 만들 수 있습니다. Tkinter는 Tk GUI 툴킷에 대한 강력한 객체지향 인터페이스를 제공합니다.
Tkinter를 사용한 GUI 애플리케이션 생성은 쉬운 작업입니다. 다음 단계만 수행하면 됩니다.
Tkinter 모듈을 임포트합니다.
GUI 애플리케이션 메인 윈도우를 생성합니다.
위에서 언급한 위젯 중 하나 이상을 GUI 애플리케이션에 추가합니다.
사용자가 트리거한 각 이벤트에 대해 조치를 취하기 위해 메인 이벤트 루프에 진입합니다.
예제
#!/usr/bin/python
import Tkinter
top = Tkinter.Tk()
# 위젯 추가 코드는 여기에...
top.mainloop()
이 코드는 다음 윈도우를 생성합니다.
Tkinter 위젯
Tkinter는 GUI 애플리케이션에서 사용되는 버튼, 레이블, 텍스트 상자 등의 다양한 컨트롤을 제공합니다. 이러한 컨트롤을 일반적으로 위젯이라고 합니다.
현재 Tkinter에는 15가지 유형의 위젯이 있습니다. 다음 표에서 이 위젯들과 간단한 설명을 제시합니다.
| 번호 |
위젯 및 설명 |
| 1 |
Button Button 위젯은 애플리케이션에 버튼을 표시하는 데 사용됩니다. |
| 2 |
Canvas Canvas 위젯은 애플리케이션에 선, 타원, 다각형, 사각형 등의 도형을 그리는 데 사용됩니다. |
| 3 |
Checkbutton Checkbutton 위젯은 여러 옵션을 체크박스로 표시하는 데 사용됩니다. 사용자는 한 번에 여러 옵션을 선택할 수 있습니다. |
| 4 |
Entry Entry 위젯은 사용자로부터 값을 입력받기 위한 단일 줄 텍스트 필드를 표시하는 데 사용됩니다. |
| 5 |
Frame Frame 위젯은 다른 위젯을 구성하기 위한 컨테이너 위젯으로 사용됩니다. |
| 6 |
Label Label 위젯은 다른 위젯에 대한 단일 줄 캡션을 제공하는 데 사용됩니다. 이미지도 포함할 수 있습니다. |
| 7 |
Listbox Listbox 위젯은 사용자에게 옵션 목록을 제공하는 데 사용됩니다. |
| 8 |
Menubutton Menubutton 위젯은 애플리케이션에 메뉴를 표시하는 데 사용됩니다. |
| 9 |
Menu Menu 위젯은 사용자에게 다양한 명령을 제공하는 데 사용됩니다. 이 명령들은 Menubutton 안에 포함됩니다. |
| 10 |
Message Message 위젯은 사용자로부터 값을 입력받기 위한 여러 줄 텍스트 필드를 표시하는 데 사용됩니다. |
| 11 |
Radiobutton Radiobutton 위젯은 여러 옵션을 라디오 버튼으로 표시하는 데 사용됩니다. 사용자는 한 번에 하나의 옵션만 선택할 수 있습니다. |
| 12 |
Scale Scale 위젯은 슬라이더 위젯을 제공하는 데 사용됩니다. |
| 13 |
Scrollbar Scrollbar 위젯은 리스트 박스 등 다양한 위젯에 스크롤 기능을 추가하는 데 사용됩니다. |
| 14 |
Text Text 위젯은 여러 줄에 텍스트를 표시하는 데 사용됩니다. |
| 15 |
Toplevel Toplevel 위젯은 별도의 윈도우 컨테이너를 제공하는 데 사용됩니다. |
| 16 |
Spinbox Spinbox 위젯은 표준 Tkinter Entry 위젯의 변형으로, 고정된 수의 값에서 선택하는 데 사용할 수 있습니다. |
| 17 |
PanedWindow PanedWindow는 수평 또는 수직으로 배열된 여러 개의 페인을 포함할 수 있는 컨테이너 위젯입니다. |
| 18 |
LabelFrame labelframe은 단순한 컨테이너 위젯입니다. 주된 목적은 복잡한 윈도우 레이아웃에서 스페이서 또는 컨테이너 역할을 하는 것입니다. |
| 19 |
tkMessageBox 이 모듈은 애플리케이션에 메시지 박스를 표시하는 데 사용됩니다. |
이 위젯들을 자세히 살펴보겠습니다.
표준 속성
크기, 색상, 폰트와 같은 공통 속성이 어떻게 지정되는지 살펴보겠습니다.
치수(Dimensions)
색상(Colors)
폰트(Fonts)
앵커(Anchors)
릴리프 스타일(Relief styles)
비트맵(Bitmaps)
커서(Cursors)
이들을 간단히 살펴보겠습니다.
지오메트리 관리
모든 Tkinter 위젯은 부모 위젯 영역 전체에 위젯을 구성하는 목적을 가진 특정 지오메트리 관리 메서드에 접근할 수 있습니다. Tkinter는 다음 지오메트리 매니저 클래스를 노출합니다: pack, grid, place.
pack() 메서드 - 이 지오메트리 매니저는 위젯을 블록으로 구성한 후 부모 위젯에 배치합니다.
grid() 메서드 - 이 지오메트리 매니저는 위젯을 부모 위젯에서 테이블 같은 구조로 구성합니다.
place() 메서드 - 이 지오메트리 매니저는 위젯을 부모 위젯의 특정 위치에 배치하여 구성합니다.
지오메트리 관리 메서드를 간단히 살펴보겠습니다.