본문 바로가기
Programming/Python

16. Tkinter 고급 위젯

by goatlab 2021. 12. 15.
728x90
반응형
SMALL

Tkinter 위젯

 

위젯은 객체를 생성하여 필요한 속성들을 지정하여 사용한다. 위젯은 부모 컨테이너와 연관하여 어떤 상대적 위치에 놓이게 되는데, Geometry Manager를 사용하여 각 위젯의 위치를 정하게 된다.

 

MyFrame 클래스는 Frame으로부터 상속된 파생클래스이고, 생성자에서 Label 하나를 추가하고 있다. Label은 좌표 (0,0)에 위치 (place)하게 되고, 레이블 안에는 이미지를 넣고 있다. 이미지는 tkinter의 PhotoImage 클래스를 사용하고 있는데, 이 클래스는 .gif 파일 (혹은 PGM) 만을 읽을 수 있다. 다른 이미지 포맷을 사용하기 위해서는 외부 모듈을 사용해야 한다. PhotoImage()에 이미지 파일을 적고 리턴된 객체를 레이블에 지정하면 되는데, 특히 가비지 컬렉션으로부터 삭제되는 것을 방지하기 위해 레퍼런스를 증가시켜 준다.

 

위젯
설명
Button
단순한 버튼
Label
텍스트 혹은 이미지 표시
CheckButton
체크박스
Entry
단순한 한 라인 텍스트 박스
ListBox
리스트 박스
RadioButton
옵션 버튼
Message
Label과 비슷하게 텍스트 표시. Label과 달리 자동 래핑 기능이 있다.
Scale
슬라이스 바
Scrollbar
스크롤 바
Text
멀티 라인 텍스트 박스로서 일부 Rich Text 기능 제공
Menu
메뉴 Pane
Menubutton
메뉴 버튼
Toplevel
새 윈도우를 생성할 때 사용. Tk()는 윈도우를 자동으로 생성하지만 추가로 새 윈도우 혹은 다이얼로그를 만들 경우 Toplevel를 사용한다
Frame
컨테이너 위젯. 다른 위젯들을 그룹화할 때 사용
Canvas
그래프와 점들로 그림을 그릴 수 있으며, 커스텀 위젯을 만드는데 사용될 수도 있다
from tkinter import *
from tkinter import ttk

root = Tk()
label = ttk.Label(root, text = 'Hello')
label.pack()

# Label을 수정하려면 config 사용
label.config(text = 'Python Tkinter 라이브러리를 이용한 ' \
             'GUI 만들기')
label.config(justify = CENTER)
label.config(font = ('현대하모니 L', 18, 'bold'))
label.img= PhotoImage(file = 'python_logo.gif')
label.config(image = label.img)

root.mainloop()

728x90
반응형
LIST

'Programming > Python' 카테고리의 다른 글

파이썬 (Python)  (0) 2022.01.10
[Python] glob (파일 이름 일람 취득)  (0) 2021.12.23
15. GUI툴킷 Tkinter  (0) 2021.12.15
14. 데이터베이스 (Database)  (0) 2021.12.15
13. 네트워크  (0) 2021.12.15