본문 바로가기

코딩/파이썬 tkinter

[Tkinter] 2장. tkinter/ttk 구성 클래스

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