본문 바로가기
Programming/Python

파이썬 tkinter란? 손쉽게 GUI 만들기 (기본, 버튼) (파이썬 Python)

by 심코딩 2022. 7. 7.

오늘은 내가 개인프로젝트를 진행하면서, 이제 곧 거쳐야 할 부분을 복습겸 공유해보려 합니다.

바로 GUI를 만드는 것인데, 바로 어떠한 프로그램의 시각적인 부분을 만드는 것이라고 할 수 있다

 

내가 백날 코드를 만들어두면 뭐하나, 그걸 프로그램화 시키고 어떠한 gui를 만들지 않으면 그냥 그건 프로그래밍을 모르는 사람들한텐 그냥 이름모를 글자나열일 뿐이다.

 

오늘은 tkinter로 기본 창을 만드는 것과 버튼 만들기를 해볼 것이다.


 

일단 먼저 tkinter를 설치하는 법은 아래와 같다. cmd를 오픈 한 후 아래를 타이핑 한후 그냥 엔터만 누르면 끝이다.

 

pip install tk

 


기본 틀 만들기

 

from tkinter import *

root = Tk()

root.title("s1mcoding")
root.geometry("500x500")

root.mainloop()

 

일단 설치한 tkinter를 불러와야 한다. 단순히 import tkinter를 통해 가져올 수는 있지만 우린 tkinter 안에 있는 모든 모듈을 한번에 불러올꺼기 때문에 from tkinter import * 를 사용한다.

 

첫 문장과 마지막 문장은 기본적인 창을 만드는 코드라고 생각하면 된다.

root이 바로 창이다. 또한 이 root이 우리가 끄기전에는 계속해서 실행이 되어야 하기 때문에 마지막에 root.mainloop()이 들어가는 것이다.

 

root.title을 통해 창의 이름을 정할 수 있고, root.geometry를 통해 사이즈를 정할 수 있다.

실행을 하면 아래와 같은 작은 창이 생기는걸 볼 수 있다.

 

버튼 만들기

 

이제 빈틀을 만들어 두었으니 그 안에 우리가 필요한 것들을 넣어야 할 것이다.

먼저 단순히 버튼 하나를 넣어보자.

 

from tkinter import *

root = Tk()

root.title("s1mcoding")
root.geometry("300x100")

btn = Button(root, text = "Button")
btn.pack()

root.mainloop()

 

btn 이라고 하는 버튼을 하나 지정 하였다. .pack( ) 을 입력을 해야 실행이 된다. 실행을 하면 아래와 같이 버튼이 한개가 생긴걸 볼 수 있다. 

 

 

버튼 조절하기 (크기, 색상, 커맨드, 아이콘 변경)

 

tkinter를 통해 해당 버튼의 크기, 색상 등등 여러가지를 조절 할 수 있다.

 

from tkinter import *

root = Tk()

root.title("s1mcoding")
root.geometry("300x100")

def btncommand():
    print(" Clicked ")
btn = Button(root, text = "Button", padx=10, pady=10, fg = "red", command = btncommand)
btn.pack()

root.mainloop()

 

btncommand 라는 함수를 만들어서, command로 묶었다. 즉 버튼을 클릭하면 " Clicked " 가 출력이 되는 것이다. 또한 padx pady를 통해 버튼의 크기를 조절 할 수 있고, fg를 통해 폰트의 색을 변경시켰다. bg를 통해 배경의 색도 변경이 가능하다.

 

실행을 하면 아래와 같이 아까와는 조금 다른 버튼이 나온다.

 

 

해당 버튼을 클릭하면 아래와 같이 btncommand 함수가 실행이 된다.

 

 

버튼의 아이콘 또한 컴퓨터에 저장되어 있는 원하는 이미지로 바꿀 수 있다.

 

from tkinter import *

root = Tk()

root.title("s1mcoding")
root.geometry("300x300")

def btncommand():
    print(" Clicked ")

icon = PhotoImage(file = "D:\image.png")

btn = Button(root, image = icon, text = "Button", padx=5, pady=5, fg = "red", command = btncommand)
btn.pack()

root.mainloop()

 

 

다음에는 Label 과 Menu 에 대해 알아보겠다.

댓글