본문 바로가기
Data Science

[Python] Tkinter 를 사용한 프로그래밍 1

by 은구잇 2021. 11. 22.
728x90

1. Tkinter 소개

파이썬에 내장되어 있는 Lightweight GUI 모듈

GUI 프레임워크나 툴킷에 비해 지원되는 위젯이 부족하고 UI 가 멋지지는 않지만

파이썬에 기본적으로 내장되어 있는 파이썬 표준 라이브러리이기 때문에 간단하게 GUI 프로그램을 만들 수 있다.

 

2. 사용방법

from tkinter import *  -> tkinter 라이브러리 

- pack 방식 

  상대 위치 방식

   가장 처음에 선언하면 제일 위에서부터 배치

- Grid 방식

  위젯들을 테이블 레이아웃에 지정된 row,col에 놓기

 

 

2.1  윈도우 creation 하는 방법
from tkinter import *

window = Tk()

window.title("Gomming's Automation Tool")

window.mainloop()

 

2.2 격자 배치 관리자

from tkinter import *
window = Tk()
l1 = Label(window, text="화씨")
l2 = Label(window, text="섭씨")
l1.grid(row = 0, column = 0)
l2.grid(row = 1, column = 0)

e1 = Entry(window)
e2 = Entry(window)

e1.grid(row = 0, column =1)
e2.grid(row = 1, column = 1)

b1 = Button(window,text="화씨 -> 섭씨")
b2 = Button(window,text="섭씨 -> 화씨")
b1.grid(row=2, column = 0)
b2.grid(row= 2, column = 1)

window.mainloop()

 

 

2.3 화씨 섭씨 온도 계산

from tkinter import *

def process():
    temperature = float(e1.get())
    mytemp = (temperature-32)*5/9
    e2.insert(0,str(mytemp))
    
window = Tk()
l1 = Label(window, text="화씨", font = 'helvetica 16 italic')
l2 = Label(window, text="섭씨", font = 'helvetica 16 italic')
l1.grid(row = 0, column = 0)
l2.grid(row = 1, column = 0)

e1 = Entry(window,bg = "blue",fg = "green") # 폰트 색
e2 = Entry(window,bg = "blue",fg = "white")

e1.grid(row = 0, column =1)
e2.grid(row = 1, column = 1)

b1 = Button(window,text="화씨 -> 섭씨",command = process)
b2 = Button(window,text="섭씨 -> 화씨")
b1.grid(row=2, column = 0)
b2.grid(row= 2, column = 1)

window.mainloop()

 

<실행결과>

 

2.4 이미지 표시 프로그램

- PhotoImage를 사용해서 파일을 가져오고 라벨로 그려줌

- 버튼을 누르면 함수 호출되면서 이미지 변경.

from tkinter import *

def change_img():
    path = inputBox.get()
    img = PhotoImage(file = "changed.png")
    imageLabel.configure(image = img)
    imageLabel.image = img
    
window = Tk()
photo = PhotoImage(file ="wf.png")

#윈도우에 이미지 라벨 그려주기
imageLabel  = Label(window, image = photo)
imageLabel.pack()

inputBox = Entry(window)
inputBox.pack()

button = Button(window,text="Submit", command = change_img)
button.pack()
window.mainloop()