본문으로 바로가기

  

 

1. 다음과 같이 하나의 레이블과 2개의 버튼을 가지는 프로그램을 작성해보자.

 

from tkinter import *

window = Tk()

program = Label(window, text="간단한 GUI 프로그램!")
program.pack()

firstBtn = Button(window, text="환영합니다.")
lastBtn  = Button(window, text="종료")

firstBtn.pack()
lastBtn.pack()

window.mainloop()

 

 

2. 숫자를 입력하고 "더하기" 버튼을 누르면 합계에 더해지고 "빼기" 버튼을 누르면 합계에서 빼지는 계산기를 작성하여 본다.

 

def plus():
    global total
    total += int(e.get())
    display()

def minus():
    global total
    total -= int(e.get())
    display()

def reset():
    global total
    total = 100
    display()

def display():
    global secondLabel
    secondLabel.destroy() 
    secondLabel = Label(window,text=total)
    secondLabel.grid(row=0,column=1) 


from tkinter import *

total = 100

window = Tk()

firstLabel  = Label(window, text="현재 합계: ")
secondLabel = Label(window, text=total)

firstLabel.grid(row=0,column=0) 
secondLabel.grid(row=0, column=1)

e = Entry(window) 
e.grid(row=1,column=0, columnspan=3) 

plusBtn  = Button(window, text="더하기(+)", command=plus) 
minusBtn = Button(window, text="빼기(-)", command=minus) 
resetBtn = Button(window, text="초기화", command=reset)

plusBtn.grid(row=2, column=0)
minusBtn.grid(row=2, column=1)
resetBtn.grid(row=2, column=2)

window.mainloop()

 

 

3. 우리가 앞에서 텍스트 버전으로 제작하였던 숫자 맞추기 게임을 그래픽 사용자 인터페이스 버전으로 작성해보자.

 

from tkinter import *
import random

window = Tk()
num = 0
betNum = random.randint(1,100)

def run():
    global num
    global betNum

    num = int(e.get())
    if num < betNum:
        firstLabel['text'] = "너무 낮아요!!"
    elif num > betNum:
        firstLabel['text'] = "너무 높아요!!"
    else:
        firstLabel['text'] = "정답입니다!"

def reset():
    global num
    global betNum

    e.delete(0,END)
    secondLabel.config(text="")
    betNum = random.randint(1,100)
    num = 0

firstLabel = Label(window, text="1에서 100사이의 수를 입력하세요.")
secondLabel = Label(window,)
thridLabel = Label(window, )

firstLabel.grid(row=1, column=0, columnspan=2)
secondLabel.grid(row=2, column=0, columnspan=2)
thridLabel.grid(row=4, column=0, columnspan=2)

e = Entry(window)
e.grid(row=3, column=0, columnspan=2)

firstBtn = Button(window, text="숫자를 입력", command = run)
secondBtn= Button(window, text="게임을 다시 실행", command = reset)

firstBtn.grid(row=5, column=0)
secondBtn.grid(row=5, column=1)

window.mainloop()

 

 

4. 인치를 센티미터로 변환하는 다음과 같은 프로그램을 작성해보자.

 

def changedInch():
    inch  = int(e.get())  
    centi = inch * 2.54 # 인치 -> 센티미터
    forthLabel.configure(text = str(centi)+" 센티미터") 
    

from tkinter import *

window = Tk()

firstLabel = Label(window, text = "인치를 센티미터로 변환하는 프로그램: ")
firstLabel.grid(row=0, column=0,columnspan=2) 

secondLabel = Label(window, text = "인치를 입력하시오:")
secondLabel.grid(row=1, column=0)

e = Entry()
e.grid(row=1, column=1)

thirdLabel = Label(window, text = "변환결과:")
thirdLabel.grid(row=2, column=0)

forthLabel = Label(window, text = "0 센티미터")

forthLabel.grid(row=2, column=1)

changeBtn = Button(window, text="변환!", command=changedInch)
changeBtn.grid(row=3, column=1)

window.mainloop()