Tkinter 기반 GUI 프로그램을 개발하기 위한 기본은 tkinter 파이썬 패키지가 어떠한 기능을 제공하는지 알 필요가 있다는 것입니다. 본 글은 파이썬 3.8.6에 내장되어 있는 tkinter 관련 클래스 및 관련 모듈 구성을 간략히 기술합니다.
아래의 그림은 제 컴퓨터에 설치되어 있는 tkinter 패키지를 구성하는 모듈의 목록입니다.

파이썬 코드로 import tkinter를 입력하면, tkinter(__init__.py) 내부적으로 constants.py 모듈까지는 import합니다. 하지만 colorchooser.py와 같은 그 외 모듈은 개발하려는 프로그램의 목적에 따라 추가로 import해 줘야 합니다.
Tkinter가 제공하는 기능(대체적으로 위젯이라고 생각되는)에 대해 검색하면, 예로 버튼(Button)에 대한 구현이 어떤 글에는 tkinter.Button(...)으로 기술되어 있는 반면 어떤 글에는 tkinter.ttk.Button(...)으로 되어 있는 것을 경험하게 될 것입니다. tkinter.ttk가 tkinter에 대한 확장 모듈이라고는 하는데 처음엔 이게 무슨 얘긴가 이해가 쉽게 오지 않았습니다.
이에 아래 표와 같이 tkinter(__init__.py)에 정의되어 있는 클래스와 tkinter.ttk(ttk.py)에서 정의되어 있는 클래스를 목록화해 보았습니다. 클래스 이름 앞의 숫자는 순번으로 tkinter에는 총 41개의 클래스가 정의되어 있다는 의미이며 (본 글 표시를 위해 순번은 별도로 추가), 아래 표에서와 같이 tkinter와 tkinter.ttk 사이 중복적인 클래스를 확인할 수 있습니다. 예로 Button 클래스(위젯)는 두 모듈 모두에 정의되어 있습니다. 하지만 Combox와 같은 클래스는 ttk에만 정의되어 있음을 알 수 있습니다.
| tkinter | tkinter.ttk |
| 1 _setit 2 BaseWidget 3 BitmapImage 4 BooleanVar 5 Button 6 CallWrapper 7 Canvas 8 Checkbutton 9 DoubleVar 10 Entry 11 Event 12 EventType 13 Frame 14 Grid 15 Image 16 IntVar 17 Label 18 LabelFrame 19 Listbox 20 Menu 21 Menubutton 22 Message 23 Misc 24 OptionMenu 25 Pack 26 PanedWindow 27 PhotoImage 28 Place 29 Radiobutton 30 Scale 31 Scrollbar 32 Spinbox 33 StringVar 34 Text 35 Tk 36 Toplevel 37 Variable 38 Widget 39 Wm 40 XView 41 YView |
1 Button 2 Checkbutton 3 Combobox 4 Entry 5 Frame 6 Label 7 LabeledScale 8 Labelframe 9 Menubutton 10 Notebook 11 OptionMenu 12 Panedwindow 13 Progressbar 14 Radiobutton 15 Scale 16 Scrollbar 17 Separator 18 Sizegrip 19 Spinbox 20 Style 21 Treeview 22 Widget |
![]() |
![]() |
'코딩 > 파이썬 tkinter' 카테고리의 다른 글
| [Tkinter] 6장. Label (ttk) (0) | 2020.11.06 |
|---|---|
| [Tkinter] 5장. Label (0) | 2020.11.05 |
| [Tkinter] 4장. Tk를 상속하는 MainWin 클래스 (0) | 2020.11.05 |
| [Tkinter] 3장. tkinter.Tk (0) | 2020.11.04 |
| [Tkinter] 1장. tkinter (0) | 2020.10.30 |

