python - TKINTER를 배워보자

ganghee·2025년 4월 1일

TKINTER

tkinter로 무언가를 만들기 위한 첫 걸음
1. tkinter import 하기(원래는 다운받아야 했는데 지금은 python으로 흡수됨)
2. 우리가 만들 그 무언가(창) 생성하기(html 개발시 localhost창을 띄우는 것과 비슷하게 느껴짐)
3. 마음껏 개발 시작

1. tkinter import 하기

import tkinter

2. 우리가 만들 그 무언가(창) 생성하기

그 무언가: tkinter.Tk() tkinter.Tk 대문자 잘 확인해야 함
이걸 windows변수에 담아서 사용

import tkinter

windows = tkinter.Tk() #그 무언가

위의 코드를 실행하면 좀 작은 크기로 이 창이 켜질텐데 창이 켜지고 코드 실행이 끝나서 켜진 화면이 안보이게 됨

그래서 창이 안꺼지게 루프를 시켜줌

import tkinter

windows = tkinter.Tk() #그 무언가

windows.mainloop() #코드 안끝나게 하기

3. 마음껏 개발 시작

3-1 창 너비 높이 위치 설정하기

windows.geometry

windows.geometry(너비x높이+x좌표+y좌표) x + + <- 형식 지켜가며 사용
windows.geometry("300x500+200+200")

import tkinter

windows = tkinter.Tk()
windows.geometry("300x500+200+200") # 너비x높이+x좌표+y좌표
windows.resizable(False, False) # resizable -> 사이즈 변경 가능? 너비, 높이

windows.mainloop()

3-2 창에 텍스트(Label) 넣기

tkinter.Label
lb.pack()

변수 = tkinter.Label(창,text="입력할 내용")
lb = tkinter.Label(windows,text="hihihi\n\n\n\nhihihihi")

변수.pack() 집어넣겠다
lb.pack()

import tkinter

windows = tkinter.Tk()
windows.geometry("300x500+200+200") # 너비x높이+x좌표+y좌표
windows.resizable(False, False) # resizable -> 사이즈 변경 가능? 너비, 높이

lb = tkinter.Label(windows,text="hihihi\n\n\n\nhihihihi")

lb.pack()

lb2 = tkinter.Label(windows,text="어 형이야")
lb2.pack()

windows.mainloop()

추가로 pack 대신 사용할 수 있는 3가지
1. pack, 2. grid, 3. place가 있음

비율 조절도 잘 되고, 글자도 잘 들어간 모습

3-3 기본 중에 기본 카운트 버튼 만들기

Button 위젯과 command 속성

마지막에 재밌는 속성도 있음

command와 button위젯 사용법

def cntUp():
global count
count += 1
if(count > 50): count = 50
label.config(text=count)

up = tkinter.Button(main, text="+", font=("맑은고딕",30), width=5, command=함수)

만들어놓은 함수를 command 속성에 넣어주면 됨

import tkinter

main = tkinter.Tk()
main.geometry("650x400") 
main.resizable(False, False)
main.title("버튼 연습")

count = 0

def cntUp():
  global count
  count += 1
  label.config(text=count)
  
def cntDown():
  global count
  count -= 1
  label.config(text=count)

def cntReset():
  global count
  count = 0
  label.config(text=count)

label = tkinter.Label(main, text="0", font=("맑은고딕",30),relief="sunken" , width=5)
up = tkinter.Button(main, text="+", font=("맑은고딕",30), width=5, command=cntUp)
down = tkinter.Button(main, text="-", font=("맑은고딕",30), width=5, command=cntDown)

label.pack()
up.pack()
down.pack()

main.mainloop()

추가적으로 리셋 버튼도 만들고 count 크기 제한도 만들었으니 공부할겸 여러분들도 ㄱㄱ

button위젯에 좀 재밌는 속성이 있는데, repeatdelay와 repeatinterval
repeatdelay: 함수 동작 지연시간
repeatinterval: 함수 반복 텀
이 두개로 버튼을 꾹 눌렀을때 숫자가 쭉 올라가게 할 수 있음

현재까지의 TKINTER 한줄 평:

profile
똑똑하고싶다

0개의 댓글