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()
'7. 교재 > 7_4 두근두근 파이썬' 카테고리의 다른 글
[두근두근 파이썬] 9장 연습문제 - 리스트와 딕셔너리 (2) | 2020.02.05 |
---|---|
[두근두근 파이썬] 7장 연습문제 - 코드를 함수로 모아봅시다. (0) | 2020.02.05 |
[두근두근 파이썬] 6장 연습문제 - 반복해봅시다. (0) | 2020.02.05 |
[두근두근 파이썬] 5장 연습문제 - 조건을 따져봅시다. (0) | 2020.02.05 |
[두근두근 파이썬] 4장 연습문제 - 자료의 종류에는 어떤 것들이 있나요? (0) | 2020.02.05 |